// export AmBase ; export AmericanAttack ; export AmericanAttack2 ; export SoldLevel , EngLevel , MechLevel , SciLevel ; starting begin disable ( 100 ) ;
   0: LD_INT 100
   2: DISABLE_MARKED
// disable ( 101 ) ;
   3: LD_INT 101
   5: DISABLE_MARKED
// disable ( 102 ) ;
   6: LD_INT 102
   8: DISABLE_MARKED
// disable ( 103 ) ;
   9: LD_INT 103
  11: DISABLE_MARKED
// disable ( 110 ) ;
  12: LD_INT 110
  14: DISABLE_MARKED
// resetfog ;
  15: CALL_OW 335
// PrepareAmerican ;
  19: CALL 1135 0 0
// PrepareHero ;
  23: CALL 3159 0 0
// ComHold ( zolnierz1 ) ;
  27: LD_INT 415
  29: PPUSH
  30: CALL_OW 140
// ComHold ( zolnierz2 ) ;
  34: LD_INT 416
  36: PPUSH
  37: CALL_OW 140
// ComHold ( zolnierz3 ) ;
  41: LD_INT 418
  43: PPUSH
  44: CALL_OW 140
// ComHold ( zolnierz4 ) ;
  48: LD_INT 417
  50: PPUSH
  51: CALL_OW 140
// InGameOn ;
  55: CALL_OW 8
// Center = 1 ;
  59: LD_ADDR_EXP 52
  63: PUSH
  64: LD_INT 1
  66: ST_TO_ADDR
// ResAllTechs ( 1 , lab1 ) ;
  67: LD_INT 1
  69: PPUSH
  70: LD_INT 216
  72: PPUSH
  73: CALL 3580 0 2
// ResAllTechs ( 1 , lab2 ) ;
  77: LD_INT 1
  79: PPUSH
  80: LD_INT 200
  82: PPUSH
  83: CALL 3580 0 2
// AmBase = ComBuild ( I_1 , b_Bunker , 97 , 44 , 3 ) ;
  87: LD_ADDR_EXP 1
  91: PUSH
  92: LD_INT 433
  94: PPUSH
  95: LD_INT 32
  97: PPUSH
  98: LD_INT 97
 100: PPUSH
 101: LD_INT 44
 103: PPUSH
 104: LD_INT 3
 106: PPUSH
 107: CALL_OW 145
 111: ST_TO_ADDR
// ComMoveToArea ( f1 , STAC ) ;
 112: LD_INT 432
 114: PPUSH
 115: LD_INT 1
 117: PPUSH
 118: CALL_OW 113
// end ;
 122: END
// every 0 0$01 trigger IsInArea ( OWChyba , STAC ) do
 123: LD_EXP 15
 127: PPUSH
 128: LD_INT 1
 130: PPUSH
 131: CALL_OW 308
 135: IFFALSE 216
 137: GO 139
 139: DISABLE
// begin ; Say ( Z_2 , a22 ) ;
 140: LD_INT 434
 142: PPUSH
 143: LD_STRING a22
 145: PPUSH
 146: CALL_OW 88
// Say ( OWChyba , a23 ) ;
 150: LD_EXP 15
 154: PPUSH
 155: LD_STRING a23
 157: PPUSH
 158: CALL_OW 88
// Say ( Z_2 , a24 ) ;
 162: LD_INT 434
 164: PPUSH
 165: LD_STRING a24
 167: PPUSH
 168: CALL_OW 88
// Say ( OWChyba , a25 ) ;
 172: LD_EXP 15
 176: PPUSH
 177: LD_STRING a25
 179: PPUSH
 180: CALL_OW 88
// Say ( Z_2 , a26 ) ;
 184: LD_INT 434
 186: PPUSH
 187: LD_STRING a26
 189: PPUSH
 190: CALL_OW 88
// Say ( OWChyba , a27 ) ;
 194: LD_EXP 15
 198: PPUSH
 199: LD_STRING a27
 201: PPUSH
 202: CALL_OW 88
// ComMoveToArea ( f1 , GODKA ) ;
 206: LD_INT 432
 208: PPUSH
 209: LD_INT 3
 211: PPUSH
 212: CALL_OW 113
// end ;
 216: END
// every 0 0$01 trigger IsInArea ( OWChyba , GODKA ) do
 217: LD_EXP 15
 221: PPUSH
 222: LD_INT 3
 224: PPUSH
 225: CALL_OW 308
 229: IFFALSE 447
 231: GO 233
 233: DISABLE
// begin ; ComExitVehicle ( OWChyba ) ;
 234: LD_EXP 15
 238: PPUSH
 239: CALL_OW 121
// ComMoveUnit ( OWChyba , PULK_02 ) ;
 243: LD_EXP 15
 247: PPUSH
 248: LD_INT 414
 250: PPUSH
 251: CALL_OW 112
// ComHold ( OWChyba ) ;
 255: LD_EXP 15
 259: PPUSH
 260: CALL_OW 140
// ComHold ( PULK_02 ) ;
 264: LD_INT 414
 266: PPUSH
 267: CALL_OW 140
// ComTurnUnit ( OWChyba , PULK_02 ) ;
 271: LD_EXP 15
 275: PPUSH
 276: LD_INT 414
 278: PPUSH
 279: CALL_OW 119
// ComTurnUnit ( PULK_02 , OWChyba ) ;
 283: LD_INT 414
 285: PPUSH
 286: LD_EXP 15
 290: PPUSH
 291: CALL_OW 119
// Say ( OWChyba , a29 ) ;
 295: LD_EXP 15
 299: PPUSH
 300: LD_STRING a29
 302: PPUSH
 303: CALL_OW 88
// Say ( PULK_02 , a30 ) ;
 307: LD_INT 414
 309: PPUSH
 310: LD_STRING a30
 312: PPUSH
 313: CALL_OW 88
// Say ( OWChyba , a31 ) ;
 317: LD_EXP 15
 321: PPUSH
 322: LD_STRING a31
 324: PPUSH
 325: CALL_OW 88
// Say ( PULK_02 , a32 ) ;
 329: LD_INT 414
 331: PPUSH
 332: LD_STRING a32
 334: PPUSH
 335: CALL_OW 88
// Say ( OWChyba , a33 ) ;
 339: LD_EXP 15
 343: PPUSH
 344: LD_STRING a33
 346: PPUSH
 347: CALL_OW 88
// Say ( PULK_02 , a34 ) ;
 351: LD_INT 414
 353: PPUSH
 354: LD_STRING a34
 356: PPUSH
 357: CALL_OW 88
// Say ( OWChyba , a35 ) ;
 361: LD_EXP 15
 365: PPUSH
 366: LD_STRING a35
 368: PPUSH
 369: CALL_OW 88
// Say ( PULK_02 , a36 ) ;
 373: LD_INT 414
 375: PPUSH
 376: LD_STRING a36
 378: PPUSH
 379: CALL_OW 88
// Say ( OWChyba , a37 ) ;
 383: LD_EXP 15
 387: PPUSH
 388: LD_STRING a37
 390: PPUSH
 391: CALL_OW 88
// Say ( PULK_02 , a38 ) ;
 395: LD_INT 414
 397: PPUSH
 398: LD_STRING a38
 400: PPUSH
 401: CALL_OW 88
// SayRadio ( Z_01 , a39 ) ;
 405: LD_INT 435
 407: PPUSH
 408: LD_STRING a39
 410: PPUSH
 411: CALL_OW 94
// SayRadio ( PULK_02 , a40 ) ;
 415: LD_INT 414
 417: PPUSH
 418: LD_STRING a40
 420: PPUSH
 421: CALL_OW 94
// Center = 0 ;
 425: LD_ADDR_EXP 52
 429: PUSH
 430: LD_INT 0
 432: ST_TO_ADDR
// CenterNowOnUnits ( Z_01 ) ;
 433: LD_INT 435
 435: PPUSH
 436: CALL_OW 87
// Russian1 ;
 440: CALL 3208 0 0
// enable ( 100 ) ;
 444: LD_INT 100
 446: ENABLE_MARKED
// end ;
 447: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 marked 100 do
 448: LD_INT 22
 450: PUSH
 451: LD_INT 6
 453: PUSH
 454: EMPTY
 455: LIST
 456: LIST
 457: PUSH
 458: LD_INT 21
 460: PUSH
 461: LD_INT 1
 463: PUSH
 464: EMPTY
 465: LIST
 466: LIST
 467: PUSH
 468: EMPTY
 469: LIST
 470: LIST
 471: PPUSH
 472: CALL_OW 69
 476: PUSH
 477: LD_INT 0
 479: EQUAL
 480: IFFALSE 558
 482: GO 484
 484: DISABLE
// begin CenterNowOnUnits ( PULK_02 ) ;
 485: LD_INT 414
 487: PPUSH
 488: CALL_OW 87
// Say ( PULK_02 , a41 ) ;
 492: LD_INT 414
 494: PPUSH
 495: LD_STRING a41
 497: PPUSH
 498: CALL_OW 88
// Say ( OWChyba , a42 ) ;
 502: LD_EXP 15
 506: PPUSH
 507: LD_STRING a42
 509: PPUSH
 510: CALL_OW 88
// Say ( PULK_02 , a43 ) ;
 514: LD_INT 414
 516: PPUSH
 517: LD_STRING a43
 519: PPUSH
 520: CALL_OW 88
// Say ( OWChyba , a44 ) ;
 524: LD_EXP 15
 528: PPUSH
 529: LD_STRING a44
 531: PPUSH
 532: CALL_OW 88
// InGameoff ;
 536: CALL_OW 9
// ChangeMissionObjectives ( M3 ) ;
 540: LD_STRING M3
 542: PPUSH
 543: CALL_OW 337
// SaveForQuickRestart ;
 547: CALL_OW 22
// InGameOff ;
 551: CALL_OW 9
// disable ( 100 ) ;
 555: LD_INT 100
 557: DISABLE_MARKED
// end ;
 558: END
// every 0 0$01 trigger IsInArea ( OWChyba , BAZA ) do var un ;
 559: LD_EXP 15
 563: PPUSH
 564: LD_INT 4
 566: PPUSH
 567: CALL_OW 308
 571: IFFALSE 708
 573: GO 575
 575: DISABLE
 576: LD_INT 0
 578: PPUSH
// begin ; SetSide ( FilterUnitsInArea ( STREFA , [ [ f_side , 1 ] ] ) , 4 ) ;
 579: LD_INT 5
 581: PPUSH
 582: LD_INT 22
 584: PUSH
 585: LD_INT 1
 587: PUSH
 588: EMPTY
 589: LIST
 590: LIST
 591: PUSH
 592: EMPTY
 593: LIST
 594: PPUSH
 595: CALL_OW 70
 599: PPUSH
 600: LD_INT 4
 602: PPUSH
 603: CALL_OW 235
// SetSide ( AmericanPerson , 4 ) ;
 607: LD_EXP 12
 611: PPUSH
 612: LD_INT 4
 614: PPUSH
 615: CALL_OW 235
// ChangeMissionObjectives ( M4 ) ;
 619: LD_STRING M4
 621: PPUSH
 622: CALL_OW 337
// pojazdy ;
 626: CALL 3695 0 0
// wait ( 0 0$20 ) ;
 630: LD_INT 700
 632: PPUSH
 633: CALL_OW 67
// Russian2 ;
 637: CALL 3803 0 0
// wait ( 0 0$40 ) ;
 641: LD_INT 1400
 643: PPUSH
 644: CALL_OW 67
// Say ( OWChyba , 58 ) ;
 648: LD_EXP 15
 652: PPUSH
 653: LD_STRING 58
 655: PPUSH
 656: CALL_OW 88
// Say ( I_1 , 59 ) ;
 660: LD_INT 433
 662: PPUSH
 663: LD_STRING 59
 665: PPUSH
 666: CALL_OW 88
// Say ( OWChyba , 60 ) ;
 670: LD_EXP 15
 674: PPUSH
 675: LD_STRING 60
 677: PPUSH
 678: CALL_OW 88
// Russian3 ;
 682: CALL 4083 0 0
// wait ( 0 0$30 ) ;
 686: LD_INT 1050
 688: PPUSH
 689: CALL_OW 67
// Russian2 ;
 693: CALL 3803 0 0
// Russian3 ;
 697: CALL 4083 0 0
// Russian1 ;
 701: CALL 3208 0 0
// enable ( 101 ) ;
 705: LD_INT 101
 707: ENABLE_MARKED
// end ;
 708: PPOPN 1
 710: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 marked 101 do
 711: LD_INT 22
 713: PUSH
 714: LD_INT 6
 716: PUSH
 717: EMPTY
 718: LIST
 719: LIST
 720: PUSH
 721: LD_INT 21
 723: PUSH
 724: LD_INT 1
 726: PUSH
 727: EMPTY
 728: LIST
 729: LIST
 730: PUSH
 731: EMPTY
 732: LIST
 733: LIST
 734: PPUSH
 735: CALL_OW 69
 739: PUSH
 740: LD_INT 0
 742: EQUAL
 743: IFFALSE 903
 745: GO 747
 747: DISABLE
// begin ; SayRadio ( PULK_02 , a45 ) ;
 748: LD_INT 414
 750: PPUSH
 751: LD_STRING a45
 753: PPUSH
 754: CALL_OW 94
// SayRadio ( OWChyba , a46 ) ;
 758: LD_EXP 15
 762: PPUSH
 763: LD_STRING a46
 765: PPUSH
 766: CALL_OW 94
// SayRadio ( PULK_02 , a47 ) ;
 770: LD_INT 414
 772: PPUSH
 773: LD_STRING a47
 775: PPUSH
 776: CALL_OW 94
// SayRadio ( OWChyba , a48 ) ;
 780: LD_EXP 15
 784: PPUSH
 785: LD_STRING a48
 787: PPUSH
 788: CALL_OW 94
// ChangeMissionObjectives ( M5 ) ;
 792: LD_STRING M5
 794: PPUSH
 795: CALL_OW 337
// disable ( 123 ) ;
 799: LD_INT 123
 801: DISABLE_MARKED
// wait ( 1 1$40 ) ;
 802: LD_INT 3500
 804: PPUSH
 805: CALL_OW 67
// Russian4_1 ;
 809: CALL 4641 0 0
// wait ( 0 0$20 ) ;
 813: LD_INT 700
 815: PPUSH
 816: CALL_OW 67
// Russian4_2 ;
 820: CALL 4308 0 0
// wait ( 0 0$50 ) ;
 824: LD_INT 1750
 826: PPUSH
 827: CALL_OW 67
// SayRadio ( PULK_02 , a49 ) ;
 831: LD_INT 414
 833: PPUSH
 834: LD_STRING a49
 836: PPUSH
 837: CALL_OW 94
// SayRadio ( OWChyba , a50 ) ;
 841: LD_EXP 15
 845: PPUSH
 846: LD_STRING a50
 848: PPUSH
 849: CALL_OW 94
// SayRadio ( PULK_02 , a51 ) ;
 853: LD_INT 414
 855: PPUSH
 856: LD_STRING a51
 858: PPUSH
 859: CALL_OW 94
// ChangeMissionObjectives ( M6 ) ;
 863: LD_STRING M6
 865: PPUSH
 866: CALL_OW 337
// wait ( 5 5$00 ) ;
 870: LD_INT 10500
 872: PPUSH
 873: CALL_OW 67
// SetAreaMapShow ( Area92 , 1 ) ;
 877: LD_INT 11
 879: PPUSH
 880: LD_INT 1
 882: PPUSH
 883: CALL_OW 424
// SayRadio ( PULK_02 , a54 ) ;
 887: LD_INT 414
 889: PPUSH
 890: LD_STRING a54
 892: PPUSH
 893: CALL_OW 94
// enable ( 102 ) ;
 897: LD_INT 102
 899: ENABLE_MARKED
// enable ( 103 ) ;
 900: LD_INT 103
 902: ENABLE_MARKED
// end ;
 903: END
// export AmericanAttack1 , AmericanAttackVehicle ; every 0 0$01 trigger IsInArea ( OWChyba , Area92 ) marked 102 do
 904: LD_EXP 15
 908: PPUSH
 909: LD_INT 11
 911: PPUSH
 912: CALL_OW 308
 916: IFFALSE 1044
 918: GO 920
 920: DISABLE
// begin ; InGameOn ;
 921: CALL_OW 8
// SayRadio ( zolnierz3 , a55 ) ;
 925: LD_INT 418
 927: PPUSH
 928: LD_STRING a55
 930: PPUSH
 931: CALL_OW 94
// InGameOff ;
 935: CALL_OW 9
// AddComAgressiveMove ( [ zolnierz1 , zolnierz2 , zolnierz3 , zolnierz4 ] , 34 , 7 ) ;
 939: LD_INT 415
 941: PUSH
 942: LD_INT 416
 944: PUSH
 945: LD_INT 418
 947: PUSH
 948: LD_INT 417
 950: PUSH
 951: EMPTY
 952: LIST
 953: LIST
 954: LIST
 955: LIST
 956: PPUSH
 957: LD_INT 34
 959: PPUSH
 960: LD_INT 7
 962: PPUSH
 963: CALL_OW 174
// ComAgressiveMove ( AmericanAttack1 , 33 , 7 ) ;
 967: LD_EXP 8
 971: PPUSH
 972: LD_INT 33
 974: PPUSH
 975: LD_INT 7
 977: PPUSH
 978: CALL_OW 114
// for AmericanAttackVehicle in FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] ] ) do
 982: LD_ADDR_EXP 9
 986: PUSH
 987: LD_INT 22
 989: PUSH
 990: LD_INT 1
 992: PUSH
 993: EMPTY
 994: LIST
 995: LIST
 996: PUSH
 997: LD_INT 21
 999: PUSH
1000: LD_INT 2
1002: PUSH
1003: EMPTY
1004: LIST
1005: LIST
1006: PUSH
1007: EMPTY
1008: LIST
1009: LIST
1010: PPUSH
1011: CALL_OW 69
1015: PUSH
1016: FOR_IN
1017: IFFALSE 1042
// begin ComAgressiveMove ( AmericanAttackVehicle , 33 , 7 ) ;
1019: LD_EXP 9
1023: PPUSH
1024: LD_INT 33
1026: PPUSH
1027: LD_INT 7
1029: PPUSH
1030: CALL_OW 114
// disable ( 102 ) ;
1034: LD_INT 102
1036: DISABLE_MARKED
// enable ( 110 ) ;
1037: LD_INT 110
1039: ENABLE_MARKED
// end ;
1040: GO 1016
1042: POP
1043: POP
// end ;
1044: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) = 0 marked 103 do
1045: LD_INT 22
1047: PUSH
1048: LD_INT 3
1050: PUSH
1051: EMPTY
1052: LIST
1053: LIST
1054: PUSH
1055: LD_INT 21
1057: PUSH
1058: LD_INT 1
1060: PUSH
1061: EMPTY
1062: LIST
1063: LIST
1064: PUSH
1065: EMPTY
1066: LIST
1067: LIST
1068: PPUSH
1069: CALL_OW 69
1073: PUSH
1074: LD_INT 0
1076: EQUAL
1077: IFFALSE 1134
1079: GO 1081
1081: DISABLE
// begin ; SayRadio ( OWCHyba , a56 ) ;
1082: LD_EXP 15
1086: PPUSH
1087: LD_STRING a56
1089: PPUSH
1090: CALL_OW 94
// SayRadio ( PULK_02 , a57 ) ;
1094: LD_INT 414
1096: PPUSH
1097: LD_STRING a57
1099: PPUSH
1100: CALL_OW 94
// medale ;
1104: CALL 5348 0 0
// SaveCharacters ( OWChyba , OWChyba ) ;
1108: LD_EXP 15
1112: PPUSH
1113: LD_STRING OWChyba
1115: PPUSH
1116: CALL_OW 38
// SaveCharacters ( PULK_02 , PULK_02 ) ;
1120: LD_INT 414
1122: PPUSH
1123: LD_STRING PULK_02
1125: PPUSH
1126: CALL_OW 38
// youwin ;
1130: CALL_OW 103
// end ; end_of_file
1134: END
// export comp_engs3 , comp_engs2 , AmericanPerson , Am1_Turret , Am2_Turret ; export function PrepareAmerican ; var am_turret , i , un , b , x1 , y1 , k , l , level , am_depot1 , comp_units , am_depot2 , am_fab , am_lab ; begin
1135: LD_INT 0
1137: PPUSH
1138: PPUSH
1139: PPUSH
1140: PPUSH
1141: PPUSH
1142: PPUSH
1143: PPUSH
1144: PPUSH
1145: PPUSH
1146: PPUSH
1147: PPUSH
1148: PPUSH
1149: PPUSH
1150: PPUSH
1151: PPUSH
// Am1_Turret := FilterUnitsInArea ( STREFA , [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
1152: LD_ADDR_EXP 13
1156: PUSH
1157: LD_INT 5
1159: PPUSH
1160: LD_INT 22
1162: PUSH
1163: LD_INT 1
1165: PUSH
1166: EMPTY
1167: LIST
1168: LIST
1169: PUSH
1170: LD_INT 30
1172: PUSH
1173: LD_INT 32
1175: PUSH
1176: EMPTY
1177: LIST
1178: LIST
1179: PUSH
1180: EMPTY
1181: LIST
1182: LIST
1183: PPUSH
1184: CALL_OW 70
1188: ST_TO_ADDR
// Am2_Turret := FilterUnitsInArea ( DUPA , [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
1189: LD_ADDR_EXP 14
1193: PUSH
1194: LD_INT 6
1196: PPUSH
1197: LD_INT 22
1199: PUSH
1200: LD_INT 1
1202: PUSH
1203: EMPTY
1204: LIST
1205: LIST
1206: PUSH
1207: LD_INT 30
1209: PUSH
1210: LD_INT 32
1212: PUSH
1213: EMPTY
1214: LIST
1215: LIST
1216: PUSH
1217: EMPTY
1218: LIST
1219: LIST
1220: PPUSH
1221: CALL_OW 70
1225: ST_TO_ADDR
// uc_side = 1 ;
1226: LD_ADDR_OWVAR 20
1230: PUSH
1231: LD_INT 1
1233: ST_TO_ADDR
// uc_nation = 1 ;
1234: LD_ADDR_OWVAR 21
1238: PUSH
1239: LD_INT 1
1241: ST_TO_ADDR
// hc_gallery =  ;
1242: LD_ADDR_OWVAR 33
1246: PUSH
1247: LD_STRING 
1249: ST_TO_ADDR
// hc_name =  ;
1250: LD_ADDR_OWVAR 26
1254: PUSH
1255: LD_STRING 
1257: ST_TO_ADDR
// for i in Am1_Turret do
1258: LD_ADDR_VAR 0 3
1262: PUSH
1263: LD_EXP 13
1267: PUSH
1268: FOR_IN
1269: IFFALSE 1461
// begin if IsInUnit ( i ) = 0 then
1271: LD_VAR 0 3
1275: PPUSH
1276: CALL_OW 310
1280: PUSH
1281: LD_INT 0
1283: EQUAL
1284: IFFALSE 1459
// begin Level = [ 3 , 3 , 3 ] [ Difficulty ] ;
1286: LD_ADDR_VAR 0 10
1290: PUSH
1291: LD_INT 3
1293: PUSH
1294: LD_INT 3
1296: PUSH
1297: LD_INT 3
1299: PUSH
1300: EMPTY
1301: LIST
1302: LIST
1303: LIST
1304: PUSH
1305: LD_OWVAR 67
1309: ARRAY
1310: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1311: LD_ADDR_OWVAR 29
1315: PUSH
1316: LD_INT 9
1318: PPUSH
1319: LD_INT 11
1321: PPUSH
1322: CALL_OW 12
1326: PUSH
1327: LD_INT 10
1329: PPUSH
1330: LD_INT 12
1332: PPUSH
1333: CALL_OW 12
1337: PUSH
1338: EMPTY
1339: LIST
1340: LIST
1341: ST_TO_ADDR
// hc_skills = [ Level , 1 + Level , Rand ( 1 , 2 ) + Level , Rand ( 0 , 4 ) ] ;
1342: LD_ADDR_OWVAR 31
1346: PUSH
1347: LD_VAR 0 10
1351: PUSH
1352: LD_INT 1
1354: PUSH
1355: LD_VAR 0 10
1359: PLUS
1360: PUSH
1361: LD_INT 1
1363: PPUSH
1364: LD_INT 2
1366: PPUSH
1367: CALL_OW 12
1371: PUSH
1372: LD_VAR 0 10
1376: PLUS
1377: PUSH
1378: LD_INT 0
1380: PPUSH
1381: LD_INT 4
1383: PPUSH
1384: CALL_OW 12
1388: PUSH
1389: EMPTY
1390: LIST
1391: LIST
1392: LIST
1393: LIST
1394: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1395: LD_ADDR_OWVAR 27
1399: PUSH
1400: LD_INT 1
1402: PPUSH
1403: LD_INT 2
1405: PPUSH
1406: CALL_OW 12
1410: ST_TO_ADDR
// hc_class = 1 ;
1411: LD_ADDR_OWVAR 28
1415: PUSH
1416: LD_INT 1
1418: ST_TO_ADDR
// un := CreateHuman ;
1419: LD_ADDR_VAR 0 4
1423: PUSH
1424: CALL_OW 44
1428: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1429: LD_VAR 0 4
1433: PPUSH
1434: LD_VAR 0 3
1438: PPUSH
1439: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1443: LD_ADDR_EXP 12
1447: PUSH
1448: LD_EXP 12
1452: PUSH
1453: LD_VAR 0 4
1457: ADD
1458: ST_TO_ADDR
// end ; end ;
1459: GO 1268
1461: POP
1462: POP
// for i in Am2_Turret do
1463: LD_ADDR_VAR 0 3
1467: PUSH
1468: LD_EXP 14
1472: PUSH
1473: FOR_IN
1474: IFFALSE 1650
// begin if IsInUnit ( i ) = 0 then
1476: LD_VAR 0 3
1480: PPUSH
1481: CALL_OW 310
1485: PUSH
1486: LD_INT 0
1488: EQUAL
1489: IFFALSE 1648
// begin Level = [ 3 , 3 , 3 ] [ Difficulty ] ;
1491: LD_ADDR_VAR 0 10
1495: PUSH
1496: LD_INT 3
1498: PUSH
1499: LD_INT 3
1501: PUSH
1502: LD_INT 3
1504: PUSH
1505: EMPTY
1506: LIST
1507: LIST
1508: LIST
1509: PUSH
1510: LD_OWVAR 67
1514: ARRAY
1515: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1516: LD_ADDR_OWVAR 29
1520: PUSH
1521: LD_INT 9
1523: PPUSH
1524: LD_INT 11
1526: PPUSH
1527: CALL_OW 12
1531: PUSH
1532: LD_INT 10
1534: PPUSH
1535: LD_INT 12
1537: PPUSH
1538: CALL_OW 12
1542: PUSH
1543: EMPTY
1544: LIST
1545: LIST
1546: ST_TO_ADDR
// hc_skills = [ Level , 1 + Level , Rand ( 1 , 2 ) + Level , Rand ( 0 , 4 ) ] ;
1547: LD_ADDR_OWVAR 31
1551: PUSH
1552: LD_VAR 0 10
1556: PUSH
1557: LD_INT 1
1559: PUSH
1560: LD_VAR 0 10
1564: PLUS
1565: PUSH
1566: LD_INT 1
1568: PPUSH
1569: LD_INT 2
1571: PPUSH
1572: CALL_OW 12
1576: PUSH
1577: LD_VAR 0 10
1581: PLUS
1582: PUSH
1583: LD_INT 0
1585: PPUSH
1586: LD_INT 4
1588: PPUSH
1589: CALL_OW 12
1593: PUSH
1594: EMPTY
1595: LIST
1596: LIST
1597: LIST
1598: LIST
1599: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1600: LD_ADDR_OWVAR 27
1604: PUSH
1605: LD_INT 1
1607: PPUSH
1608: LD_INT 2
1610: PPUSH
1611: CALL_OW 12
1615: ST_TO_ADDR
// hc_class = 1 ;
1616: LD_ADDR_OWVAR 28
1620: PUSH
1621: LD_INT 1
1623: ST_TO_ADDR
// un := CreateHuman ;
1624: LD_ADDR_VAR 0 4
1628: PUSH
1629: CALL_OW 44
1633: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1634: LD_VAR 0 4
1638: PPUSH
1639: LD_VAR 0 3
1643: PPUSH
1644: CALL_OW 52
// end ; end ;
1648: GO 1473
1650: POP
1651: POP
// for i in fabryka1 do
1652: LD_ADDR_VAR 0 3
1656: PUSH
1657: LD_INT 223
1659: PUSH
1660: FOR_IN
1661: IFFALSE 1895
// begin l = 0 ;
1663: LD_ADDR_VAR 0 9
1667: PUSH
1668: LD_INT 0
1670: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1671: LD_VAR 0 3
1675: PPUSH
1676: CALL_OW 310
1680: PUSH
1681: LD_INT 0
1683: EQUAL
1684: IFFALSE 1893
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
1686: LD_ADDR_VAR 0 10
1690: PUSH
1691: LD_INT 5
1693: PUSH
1694: LD_INT 5
1696: PUSH
1697: LD_INT 5
1699: PUSH
1700: EMPTY
1701: LIST
1702: LIST
1703: LIST
1704: PUSH
1705: LD_OWVAR 67
1709: ARRAY
1710: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1711: LD_ADDR_OWVAR 20
1715: PUSH
1716: LD_INT 1
1718: ST_TO_ADDR
// uc_nation = 1 ;
1719: LD_ADDR_OWVAR 21
1723: PUSH
1724: LD_INT 1
1726: ST_TO_ADDR
// hc_gallery =  ;
1727: LD_ADDR_OWVAR 33
1731: PUSH
1732: LD_STRING 
1734: ST_TO_ADDR
// hc_name =  ;
1735: LD_ADDR_OWVAR 26
1739: PUSH
1740: LD_STRING 
1742: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1743: LD_ADDR_OWVAR 29
1747: PUSH
1748: LD_INT 9
1750: PPUSH
1751: LD_INT 11
1753: PPUSH
1754: CALL_OW 12
1758: PUSH
1759: LD_INT 10
1761: PPUSH
1762: LD_INT 12
1764: PPUSH
1765: CALL_OW 12
1769: PUSH
1770: EMPTY
1771: LIST
1772: LIST
1773: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 0 , 1 ) ] ;
1774: LD_ADDR_OWVAR 31
1778: PUSH
1779: LD_INT 0
1781: PPUSH
1782: LD_INT 3
1784: PPUSH
1785: CALL_OW 12
1789: PUSH
1790: LD_INT 0
1792: PPUSH
1793: LD_INT 1
1795: PPUSH
1796: CALL_OW 12
1800: PUSH
1801: LD_VAR 0 10
1805: PUSH
1806: LD_INT 0
1808: PPUSH
1809: LD_INT 1
1811: PPUSH
1812: CALL_OW 12
1816: PUSH
1817: EMPTY
1818: LIST
1819: LIST
1820: LIST
1821: LIST
1822: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1823: LD_ADDR_OWVAR 27
1827: PUSH
1828: LD_INT 1
1830: PPUSH
1831: LD_INT 2
1833: PPUSH
1834: CALL_OW 12
1838: ST_TO_ADDR
// hc_class = 3 ;
1839: LD_ADDR_OWVAR 28
1843: PUSH
1844: LD_INT 3
1846: ST_TO_ADDR
// un = CreateHuman ;
1847: LD_ADDR_VAR 0 4
1851: PUSH
1852: CALL_OW 44
1856: ST_TO_ADDR
// PlaceHumanInUnit ( un , fabryka1 ) ;
1857: LD_VAR 0 4
1861: PPUSH
1862: LD_INT 223
1864: PPUSH
1865: CALL_OW 52
// l = l + 1 ;
1869: LD_ADDR_VAR 0 9
1873: PUSH
1874: LD_VAR 0 9
1878: PUSH
1879: LD_INT 1
1881: PLUS
1882: ST_TO_ADDR
// end until l = 4 ;
1883: LD_VAR 0 9
1887: PUSH
1888: LD_INT 4
1890: EQUAL
1891: IFFALSE 1711
// end ; end ;
1893: GO 1660
1895: POP
1896: POP
// for i in lab1 do
1897: LD_ADDR_VAR 0 3
1901: PUSH
1902: LD_INT 216
1904: PUSH
1905: FOR_IN
1906: IFFALSE 2140
// begin l = 0 ;
1908: LD_ADDR_VAR 0 9
1912: PUSH
1913: LD_INT 0
1915: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1916: LD_VAR 0 3
1920: PPUSH
1921: CALL_OW 310
1925: PUSH
1926: LD_INT 0
1928: EQUAL
1929: IFFALSE 2138
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1931: LD_ADDR_VAR 0 10
1935: PUSH
1936: LD_INT 4
1938: PUSH
1939: LD_INT 4
1941: PUSH
1942: LD_INT 4
1944: PUSH
1945: EMPTY
1946: LIST
1947: LIST
1948: LIST
1949: PUSH
1950: LD_OWVAR 67
1954: ARRAY
1955: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1956: LD_ADDR_OWVAR 20
1960: PUSH
1961: LD_INT 1
1963: ST_TO_ADDR
// uc_nation = 1 ;
1964: LD_ADDR_OWVAR 21
1968: PUSH
1969: LD_INT 1
1971: ST_TO_ADDR
// hc_gallery =  ;
1972: LD_ADDR_OWVAR 33
1976: PUSH
1977: LD_STRING 
1979: ST_TO_ADDR
// hc_name =  ;
1980: LD_ADDR_OWVAR 26
1984: PUSH
1985: LD_STRING 
1987: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1988: LD_ADDR_OWVAR 29
1992: PUSH
1993: LD_INT 9
1995: PPUSH
1996: LD_INT 11
1998: PPUSH
1999: CALL_OW 12
2003: PUSH
2004: LD_INT 10
2006: PPUSH
2007: LD_INT 12
2009: PPUSH
2010: CALL_OW 12
2014: PUSH
2015: EMPTY
2016: LIST
2017: LIST
2018: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 2 , 4 ) ] ;
2019: LD_ADDR_OWVAR 31
2023: PUSH
2024: LD_INT 0
2026: PPUSH
2027: LD_INT 3
2029: PPUSH
2030: CALL_OW 12
2034: PUSH
2035: LD_INT 0
2037: PPUSH
2038: LD_INT 1
2040: PPUSH
2041: CALL_OW 12
2045: PUSH
2046: LD_VAR 0 10
2050: PUSH
2051: LD_INT 2
2053: PPUSH
2054: LD_INT 4
2056: PPUSH
2057: CALL_OW 12
2061: PUSH
2062: EMPTY
2063: LIST
2064: LIST
2065: LIST
2066: LIST
2067: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2068: LD_ADDR_OWVAR 27
2072: PUSH
2073: LD_INT 1
2075: PPUSH
2076: LD_INT 2
2078: PPUSH
2079: CALL_OW 12
2083: ST_TO_ADDR
// hc_class = 4 ;
2084: LD_ADDR_OWVAR 28
2088: PUSH
2089: LD_INT 4
2091: ST_TO_ADDR
// un = CreateHuman ;
2092: LD_ADDR_VAR 0 4
2096: PUSH
2097: CALL_OW 44
2101: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab1 ) ;
2102: LD_VAR 0 4
2106: PPUSH
2107: LD_INT 216
2109: PPUSH
2110: CALL_OW 52
// l = l + 1 ;
2114: LD_ADDR_VAR 0 9
2118: PUSH
2119: LD_VAR 0 9
2123: PUSH
2124: LD_INT 1
2126: PLUS
2127: ST_TO_ADDR
// end until l = 3 ;
2128: LD_VAR 0 9
2132: PUSH
2133: LD_INT 3
2135: EQUAL
2136: IFFALSE 1956
// end ; end ;
2138: GO 1905
2140: POP
2141: POP
// for i in lab2 do
2142: LD_ADDR_VAR 0 3
2146: PUSH
2147: LD_INT 200
2149: PUSH
2150: FOR_IN
2151: IFFALSE 2385
// begin ; l = 0 ;
2153: LD_ADDR_VAR 0 9
2157: PUSH
2158: LD_INT 0
2160: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2161: LD_VAR 0 3
2165: PPUSH
2166: CALL_OW 310
2170: PUSH
2171: LD_INT 0
2173: EQUAL
2174: IFFALSE 2383
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2176: LD_ADDR_VAR 0 10
2180: PUSH
2181: LD_INT 4
2183: PUSH
2184: LD_INT 4
2186: PUSH
2187: LD_INT 4
2189: PUSH
2190: EMPTY
2191: LIST
2192: LIST
2193: LIST
2194: PUSH
2195: LD_OWVAR 67
2199: ARRAY
2200: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2201: LD_ADDR_OWVAR 20
2205: PUSH
2206: LD_INT 1
2208: ST_TO_ADDR
// uc_nation = 1 ;
2209: LD_ADDR_OWVAR 21
2213: PUSH
2214: LD_INT 1
2216: ST_TO_ADDR
// hc_gallery =  ;
2217: LD_ADDR_OWVAR 33
2221: PUSH
2222: LD_STRING 
2224: ST_TO_ADDR
// hc_name =  ;
2225: LD_ADDR_OWVAR 26
2229: PUSH
2230: LD_STRING 
2232: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2233: LD_ADDR_OWVAR 29
2237: PUSH
2238: LD_INT 9
2240: PPUSH
2241: LD_INT 11
2243: PPUSH
2244: CALL_OW 12
2248: PUSH
2249: LD_INT 10
2251: PPUSH
2252: LD_INT 12
2254: PPUSH
2255: CALL_OW 12
2259: PUSH
2260: EMPTY
2261: LIST
2262: LIST
2263: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 2 , 4 ) ] ;
2264: LD_ADDR_OWVAR 31
2268: PUSH
2269: LD_INT 0
2271: PPUSH
2272: LD_INT 3
2274: PPUSH
2275: CALL_OW 12
2279: PUSH
2280: LD_INT 0
2282: PPUSH
2283: LD_INT 1
2285: PPUSH
2286: CALL_OW 12
2290: PUSH
2291: LD_VAR 0 10
2295: PUSH
2296: LD_INT 2
2298: PPUSH
2299: LD_INT 4
2301: PPUSH
2302: CALL_OW 12
2306: PUSH
2307: EMPTY
2308: LIST
2309: LIST
2310: LIST
2311: LIST
2312: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2313: LD_ADDR_OWVAR 27
2317: PUSH
2318: LD_INT 1
2320: PPUSH
2321: LD_INT 2
2323: PPUSH
2324: CALL_OW 12
2328: ST_TO_ADDR
// hc_class = 4 ;
2329: LD_ADDR_OWVAR 28
2333: PUSH
2334: LD_INT 4
2336: ST_TO_ADDR
// un = CreateHuman ;
2337: LD_ADDR_VAR 0 4
2341: PUSH
2342: CALL_OW 44
2346: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab2 ) ;
2347: LD_VAR 0 4
2351: PPUSH
2352: LD_INT 200
2354: PPUSH
2355: CALL_OW 52
// l = l + 1 ;
2359: LD_ADDR_VAR 0 9
2363: PUSH
2364: LD_VAR 0 9
2368: PUSH
2369: LD_INT 1
2371: PLUS
2372: ST_TO_ADDR
// end until l = 1 ;
2373: LD_VAR 0 9
2377: PUSH
2378: LD_INT 1
2380: EQUAL
2381: IFFALSE 2201
// end ; end ;
2383: GO 2150
2385: POP
2386: POP
// for i in lab3 do
2387: LD_ADDR_VAR 0 3
2391: PUSH
2392: LD_INT 134
2394: PUSH
2395: FOR_IN
2396: IFFALSE 2646
// begin l = 0 ;
2398: LD_ADDR_VAR 0 9
2402: PUSH
2403: LD_INT 0
2405: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2406: LD_VAR 0 3
2410: PPUSH
2411: CALL_OW 310
2415: PUSH
2416: LD_INT 0
2418: EQUAL
2419: IFFALSE 2644
// begin Level = [ 3 , 3 , 3 ] [ Difficulty ] ;
2421: LD_ADDR_VAR 0 10
2425: PUSH
2426: LD_INT 3
2428: PUSH
2429: LD_INT 3
2431: PUSH
2432: LD_INT 3
2434: PUSH
2435: EMPTY
2436: LIST
2437: LIST
2438: LIST
2439: PUSH
2440: LD_OWVAR 67
2444: ARRAY
2445: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2446: LD_ADDR_OWVAR 20
2450: PUSH
2451: LD_INT 1
2453: ST_TO_ADDR
// uc_nation = 1 ;
2454: LD_ADDR_OWVAR 21
2458: PUSH
2459: LD_INT 1
2461: ST_TO_ADDR
// hc_gallery =  ;
2462: LD_ADDR_OWVAR 33
2466: PUSH
2467: LD_STRING 
2469: ST_TO_ADDR
// hc_name =  ;
2470: LD_ADDR_OWVAR 26
2474: PUSH
2475: LD_STRING 
2477: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2478: LD_ADDR_OWVAR 29
2482: PUSH
2483: LD_INT 9
2485: PPUSH
2486: LD_INT 11
2488: PPUSH
2489: CALL_OW 12
2493: PUSH
2494: LD_INT 10
2496: PPUSH
2497: LD_INT 12
2499: PPUSH
2500: CALL_OW 12
2504: PUSH
2505: EMPTY
2506: LIST
2507: LIST
2508: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 2 , 4 ) ] ;
2509: LD_ADDR_OWVAR 31
2513: PUSH
2514: LD_INT 0
2516: PPUSH
2517: LD_INT 3
2519: PPUSH
2520: CALL_OW 12
2524: PUSH
2525: LD_INT 0
2527: PPUSH
2528: LD_INT 1
2530: PPUSH
2531: CALL_OW 12
2535: PUSH
2536: LD_VAR 0 10
2540: PUSH
2541: LD_INT 2
2543: PPUSH
2544: LD_INT 4
2546: PPUSH
2547: CALL_OW 12
2551: PUSH
2552: EMPTY
2553: LIST
2554: LIST
2555: LIST
2556: LIST
2557: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2558: LD_ADDR_OWVAR 27
2562: PUSH
2563: LD_INT 1
2565: PPUSH
2566: LD_INT 2
2568: PPUSH
2569: CALL_OW 12
2573: ST_TO_ADDR
// hc_class = 4 ;
2574: LD_ADDR_OWVAR 28
2578: PUSH
2579: LD_INT 4
2581: ST_TO_ADDR
// un = CreateHuman ;
2582: LD_ADDR_VAR 0 4
2586: PUSH
2587: CALL_OW 44
2591: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab3 ) ;
2592: LD_VAR 0 4
2596: PPUSH
2597: LD_INT 134
2599: PPUSH
2600: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2604: LD_ADDR_EXP 12
2608: PUSH
2609: LD_EXP 12
2613: PUSH
2614: LD_VAR 0 4
2618: ADD
2619: ST_TO_ADDR
// l = l + 1 ;
2620: LD_ADDR_VAR 0 9
2624: PUSH
2625: LD_VAR 0 9
2629: PUSH
2630: LD_INT 1
2632: PLUS
2633: ST_TO_ADDR
// end until l = 1 ;
2634: LD_VAR 0 9
2638: PUSH
2639: LD_INT 1
2641: EQUAL
2642: IFFALSE 2446
// end ; end ;
2644: GO 2395
2646: POP
2647: POP
// for i in fabryka2 do
2648: LD_ADDR_VAR 0 3
2652: PUSH
2653: LD_INT 130
2655: PUSH
2656: FOR_IN
2657: IFFALSE 2907
// begin l = 0 ;
2659: LD_ADDR_VAR 0 9
2663: PUSH
2664: LD_INT 0
2666: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2667: LD_VAR 0 3
2671: PPUSH
2672: CALL_OW 310
2676: PUSH
2677: LD_INT 0
2679: EQUAL
2680: IFFALSE 2905
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2682: LD_ADDR_VAR 0 10
2686: PUSH
2687: LD_INT 4
2689: PUSH
2690: LD_INT 4
2692: PUSH
2693: LD_INT 4
2695: PUSH
2696: EMPTY
2697: LIST
2698: LIST
2699: LIST
2700: PUSH
2701: LD_OWVAR 67
2705: ARRAY
2706: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2707: LD_ADDR_OWVAR 20
2711: PUSH
2712: LD_INT 1
2714: ST_TO_ADDR
// uc_nation = 1 ;
2715: LD_ADDR_OWVAR 21
2719: PUSH
2720: LD_INT 1
2722: ST_TO_ADDR
// hc_gallery =  ;
2723: LD_ADDR_OWVAR 33
2727: PUSH
2728: LD_STRING 
2730: ST_TO_ADDR
// hc_name =  ;
2731: LD_ADDR_OWVAR 26
2735: PUSH
2736: LD_STRING 
2738: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2739: LD_ADDR_OWVAR 29
2743: PUSH
2744: LD_INT 9
2746: PPUSH
2747: LD_INT 11
2749: PPUSH
2750: CALL_OW 12
2754: PUSH
2755: LD_INT 10
2757: PPUSH
2758: LD_INT 12
2760: PPUSH
2761: CALL_OW 12
2765: PUSH
2766: EMPTY
2767: LIST
2768: LIST
2769: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 0 , 1 ) ] ;
2770: LD_ADDR_OWVAR 31
2774: PUSH
2775: LD_INT 0
2777: PPUSH
2778: LD_INT 3
2780: PPUSH
2781: CALL_OW 12
2785: PUSH
2786: LD_INT 0
2788: PPUSH
2789: LD_INT 1
2791: PPUSH
2792: CALL_OW 12
2796: PUSH
2797: LD_VAR 0 10
2801: PUSH
2802: LD_INT 0
2804: PPUSH
2805: LD_INT 1
2807: PPUSH
2808: CALL_OW 12
2812: PUSH
2813: EMPTY
2814: LIST
2815: LIST
2816: LIST
2817: LIST
2818: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2819: LD_ADDR_OWVAR 27
2823: PUSH
2824: LD_INT 1
2826: PPUSH
2827: LD_INT 2
2829: PPUSH
2830: CALL_OW 12
2834: ST_TO_ADDR
// hc_class = 3 ;
2835: LD_ADDR_OWVAR 28
2839: PUSH
2840: LD_INT 3
2842: ST_TO_ADDR
// un = CreateHuman ;
2843: LD_ADDR_VAR 0 4
2847: PUSH
2848: CALL_OW 44
2852: ST_TO_ADDR
// PlaceHumanInUnit ( un , fabryka2 ) ;
2853: LD_VAR 0 4
2857: PPUSH
2858: LD_INT 130
2860: PPUSH
2861: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2865: LD_ADDR_EXP 12
2869: PUSH
2870: LD_EXP 12
2874: PUSH
2875: LD_VAR 0 4
2879: ADD
2880: ST_TO_ADDR
// l = l + 1 ;
2881: LD_ADDR_VAR 0 9
2885: PUSH
2886: LD_VAR 0 9
2890: PUSH
2891: LD_INT 1
2893: PLUS
2894: ST_TO_ADDR
// end until l = 2 ;
2895: LD_VAR 0 9
2899: PUSH
2900: LD_INT 2
2902: EQUAL
2903: IFFALSE 2707
// end ; end ;
2905: GO 2656
2907: POP
2908: POP
// for i in depot1 do
2909: LD_ADDR_VAR 0 3
2913: PUSH
2914: LD_INT 2
2916: PUSH
2917: FOR_IN
2918: IFFALSE 3152
// begin l = 0 ;
2920: LD_ADDR_VAR 0 9
2924: PUSH
2925: LD_INT 0
2927: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2928: LD_VAR 0 3
2932: PPUSH
2933: CALL_OW 310
2937: PUSH
2938: LD_INT 0
2940: EQUAL
2941: IFFALSE 3150
// begin Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
2943: LD_ADDR_VAR 0 10
2947: PUSH
2948: LD_INT 5
2950: PUSH
2951: LD_INT 6
2953: PUSH
2954: LD_INT 7
2956: PUSH
2957: EMPTY
2958: LIST
2959: LIST
2960: LIST
2961: PUSH
2962: LD_OWVAR 67
2966: ARRAY
2967: ST_TO_ADDR
// repeat begin uc_side = 3 ;
2968: LD_ADDR_OWVAR 20
2972: PUSH
2973: LD_INT 3
2975: ST_TO_ADDR
// uc_nation = 3 ;
2976: LD_ADDR_OWVAR 21
2980: PUSH
2981: LD_INT 3
2983: ST_TO_ADDR
// hc_gallery =  ;
2984: LD_ADDR_OWVAR 33
2988: PUSH
2989: LD_STRING 
2991: ST_TO_ADDR
// hc_name =  ;
2992: LD_ADDR_OWVAR 26
2996: PUSH
2997: LD_STRING 
2999: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3000: LD_ADDR_OWVAR 29
3004: PUSH
3005: LD_INT 9
3007: PPUSH
3008: LD_INT 11
3010: PPUSH
3011: CALL_OW 12
3015: PUSH
3016: LD_INT 10
3018: PPUSH
3019: LD_INT 12
3021: PPUSH
3022: CALL_OW 12
3026: PUSH
3027: EMPTY
3028: LIST
3029: LIST
3030: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Level , Rand ( 0 , 3 ) , Rand ( 0 , 1 ) ] ;
3031: LD_ADDR_OWVAR 31
3035: PUSH
3036: LD_INT 0
3038: PPUSH
3039: LD_INT 3
3041: PPUSH
3042: CALL_OW 12
3046: PUSH
3047: LD_VAR 0 10
3051: PUSH
3052: LD_INT 0
3054: PPUSH
3055: LD_INT 3
3057: PPUSH
3058: CALL_OW 12
3062: PUSH
3063: LD_INT 0
3065: PPUSH
3066: LD_INT 1
3068: PPUSH
3069: CALL_OW 12
3073: PUSH
3074: EMPTY
3075: LIST
3076: LIST
3077: LIST
3078: LIST
3079: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3080: LD_ADDR_OWVAR 27
3084: PUSH
3085: LD_INT 1
3087: PPUSH
3088: LD_INT 2
3090: PPUSH
3091: CALL_OW 12
3095: ST_TO_ADDR
// hc_class = 2 ;
3096: LD_ADDR_OWVAR 28
3100: PUSH
3101: LD_INT 2
3103: ST_TO_ADDR
// un = CreateHuman ;
3104: LD_ADDR_VAR 0 4
3108: PUSH
3109: CALL_OW 44
3113: ST_TO_ADDR
// PlaceHumanInUnit ( un , depot1 ) ;
3114: LD_VAR 0 4
3118: PPUSH
3119: LD_INT 2
3121: PPUSH
3122: CALL_OW 52
// l = l + 1 ;
3126: LD_ADDR_VAR 0 9
3130: PUSH
3131: LD_VAR 0 9
3135: PUSH
3136: LD_INT 1
3138: PLUS
3139: ST_TO_ADDR
// end until l = 2 ;
3140: LD_VAR 0 9
3144: PUSH
3145: LD_INT 2
3147: EQUAL
3148: IFFALSE 2968
// end ; end ;
3150: GO 2917
3152: POP
3153: POP
// end ; end_of_file
3154: LD_VAR 0 1
3158: RET
// export OWChyba ; export function PrepareHero ; begin
3159: LD_INT 0
3161: PPUSH
// uc_side = 4 ;
3162: LD_ADDR_OWVAR 20
3166: PUSH
3167: LD_INT 4
3169: ST_TO_ADDR
// uc_nation = 1 ;
3170: LD_ADDR_OWVAR 21
3174: PUSH
3175: LD_INT 1
3177: ST_TO_ADDR
// OWCHyba := CreateCharacter ( OWChyba ) ;
3178: LD_ADDR_EXP 15
3182: PUSH
3183: LD_STRING OWChyba
3185: PPUSH
3186: CALL_OW 34
3190: ST_TO_ADDR
// PlaceHumanInUnit ( OWChyba , f1 ) ;
3191: LD_EXP 15
3195: PPUSH
3196: LD_INT 432
3198: PPUSH
3199: CALL_OW 52
// end ; end_of_file
3203: LD_VAR 0 1
3207: RET
// export postac1 , postac2 , postac3 , postac4 , c1 , b1 ; export function Russian1 ; begin
3208: LD_INT 0
3210: PPUSH
// ; hc_name =  ;
3211: LD_ADDR_OWVAR 26
3215: PUSH
3216: LD_STRING 
3218: ST_TO_ADDR
// uc_nation = nation_russian ;
3219: LD_ADDR_OWVAR 21
3223: PUSH
3224: LD_INT 3
3226: ST_TO_ADDR
// hc_class = 1 ;
3227: LD_ADDR_OWVAR 28
3231: PUSH
3232: LD_INT 1
3234: ST_TO_ADDR
// uc_side = 6 ;
3235: LD_ADDR_OWVAR 20
3239: PUSH
3240: LD_INT 6
3242: ST_TO_ADDR
// hc_gallery =  ;
3243: LD_ADDR_OWVAR 33
3247: PUSH
3248: LD_STRING 
3250: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
3251: LD_ADDR_OWVAR 29
3255: PUSH
3256: LD_INT 10
3258: PUSH
3259: LD_INT 10
3261: PUSH
3262: EMPTY
3263: LIST
3264: LIST
3265: ST_TO_ADDR
// hc_basic_skills = [ 3 , 0 , 0 , 0 ] ;
3266: LD_ADDR_OWVAR 30
3270: PUSH
3271: LD_INT 3
3273: PUSH
3274: LD_INT 0
3276: PUSH
3277: LD_INT 0
3279: PUSH
3280: LD_INT 0
3282: PUSH
3283: EMPTY
3284: LIST
3285: LIST
3286: LIST
3287: LIST
3288: ST_TO_ADDR
// hc_importance = 10 ;
3289: LD_ADDR_OWVAR 32
3293: PUSH
3294: LD_INT 10
3296: ST_TO_ADDR
// postac1 = CreateHuman ;
3297: LD_ADDR_EXP 16
3301: PUSH
3302: CALL_OW 44
3306: ST_TO_ADDR
// postac2 = CreateHuman ;
3307: LD_ADDR_EXP 17
3311: PUSH
3312: CALL_OW 44
3316: ST_TO_ADDR
// postac3 = CreateHuman ;
3317: LD_ADDR_EXP 18
3321: PUSH
3322: CALL_OW 44
3326: ST_TO_ADDR
// postac4 = CreateHuman ;
3327: LD_ADDR_EXP 19
3331: PUSH
3332: CALL_OW 44
3336: ST_TO_ADDR
// PlaceUnitArea ( postac1 , ATTACK1 , false ) ;
3337: LD_EXP 16
3341: PPUSH
3342: LD_INT 2
3344: PPUSH
3345: LD_INT 0
3347: PPUSH
3348: CALL_OW 49
// PlaceUnitArea ( postac2 , ATTACK1 , false ) ;
3352: LD_EXP 17
3356: PPUSH
3357: LD_INT 2
3359: PPUSH
3360: LD_INT 0
3362: PPUSH
3363: CALL_OW 49
// PlaceUnitArea ( postac3 , ATTACK1 , false ) ;
3367: LD_EXP 18
3371: PPUSH
3372: LD_INT 2
3374: PPUSH
3375: LD_INT 0
3377: PPUSH
3378: CALL_OW 49
// PlaceUnitArea ( postac4 , ATTACK1 , false ) ;
3382: LD_EXP 19
3386: PPUSH
3387: LD_INT 2
3389: PPUSH
3390: LD_INT 0
3392: PPUSH
3393: CALL_OW 49
// vc_chassis = 23 ;
3397: LD_ADDR_OWVAR 37
3401: PUSH
3402: LD_INT 23
3404: ST_TO_ADDR
// vc_engine = engine_combustion ;
3405: LD_ADDR_OWVAR 39
3409: PUSH
3410: LD_INT 1
3412: ST_TO_ADDR
// vc_control = control_manual ;
3413: LD_ADDR_OWVAR 38
3417: PUSH
3418: LD_INT 1
3420: ST_TO_ADDR
// vc_weapon = 43 ;
3421: LD_ADDR_OWVAR 40
3425: PUSH
3426: LD_INT 43
3428: ST_TO_ADDR
// b1 = CreateVehicle ;
3429: LD_ADDR_EXP 21
3433: PUSH
3434: CALL_OW 45
3438: ST_TO_ADDR
// hc_class = 3 ;
3439: LD_ADDR_OWVAR 28
3443: PUSH
3444: LD_INT 3
3446: ST_TO_ADDR
// hc_name =  ;
3447: LD_ADDR_OWVAR 26
3451: PUSH
3452: LD_STRING 
3454: ST_TO_ADDR
// hc_gallery =  ;
3455: LD_ADDR_OWVAR 33
3459: PUSH
3460: LD_STRING 
3462: ST_TO_ADDR
// hc_sex = sex_male ;
3463: LD_ADDR_OWVAR 27
3467: PUSH
3468: LD_INT 1
3470: ST_TO_ADDR
// hc_skills = [ 1 , 2 , 4 , 0 ] ;
3471: LD_ADDR_OWVAR 31
3475: PUSH
3476: LD_INT 1
3478: PUSH
3479: LD_INT 2
3481: PUSH
3482: LD_INT 4
3484: PUSH
3485: LD_INT 0
3487: PUSH
3488: EMPTY
3489: LIST
3490: LIST
3491: LIST
3492: LIST
3493: ST_TO_ADDR
// c1 = CreateHuman ;
3494: LD_ADDR_EXP 20
3498: PUSH
3499: CALL_OW 44
3503: ST_TO_ADDR
// PlaceHumanInUnit ( c1 , b1 ) ;
3504: LD_EXP 20
3508: PPUSH
3509: LD_EXP 21
3513: PPUSH
3514: CALL_OW 52
// PlaceUnitArea ( b1 , ATTACK1 , false ) ;
3518: LD_EXP 21
3522: PPUSH
3523: LD_INT 2
3525: PPUSH
3526: LD_INT 0
3528: PPUSH
3529: CALL_OW 49
// AddComAgressiveMove ( [ postac1 , postac2 , postac3 , postac4 , b1 ] , 138 , 117 ) ;
3533: LD_EXP 16
3537: PUSH
3538: LD_EXP 17
3542: PUSH
3543: LD_EXP 18
3547: PUSH
3548: LD_EXP 19
3552: PUSH
3553: LD_EXP 21
3557: PUSH
3558: EMPTY
3559: LIST
3560: LIST
3561: LIST
3562: LIST
3563: LIST
3564: PPUSH
3565: LD_INT 138
3567: PPUSH
3568: LD_INT 117
3570: PPUSH
3571: CALL_OW 174
// end ; end_of_file
3575: LD_VAR 0 1
3579: RET
// export pojazd1 , pojazd2 , pojazd3 , pojazd4 ; export function ResAllTechs ( side , lab ) ; var i , tech , cout ; begin
3580: LD_INT 0
3582: PPUSH
3583: PPUSH
3584: PPUSH
3585: PPUSH
// while ( cout < 50 ) do
3586: LD_VAR 0 6
3590: PUSH
3591: LD_INT 50
3593: LESS
3594: IFFALSE 3666
// begin for i = 1 to 72 do
3596: LD_ADDR_VAR 0 4
3600: PUSH
3601: DOUBLE
3602: LD_INT 1
3604: DEC
3605: ST_TO_ADDR
3606: LD_INT 72
3608: PUSH
3609: FOR_TO
3610: IFFALSE 3648
// begin if GetTech ( i , side ) = state_enabled then
3612: LD_VAR 0 4
3616: PPUSH
3617: LD_VAR 0 1
3621: PPUSH
3622: CALL_OW 321
3626: PUSH
3627: LD_INT 1
3629: EQUAL
3630: IFFALSE 3646
// AddComResearch ( lab , i ) ;
3632: LD_VAR 0 2
3636: PPUSH
3637: LD_VAR 0 4
3641: PPUSH
3642: CALL_OW 184
// end ;
3646: GO 3609
3648: POP
3649: POP
// cout = cout + 1 ;
3650: LD_ADDR_VAR 0 6
3654: PUSH
3655: LD_VAR 0 6
3659: PUSH
3660: LD_INT 1
3662: PLUS
3663: ST_TO_ADDR
// end ;
3664: GO 3586
// end ;
3666: LD_VAR 0 3
3670: RET
// every 0 0$01 do
3671: GO 3673
3673: DISABLE
// begin ResAllTechs ( 1 , lab1 ) ;
3674: LD_INT 1
3676: PPUSH
3677: LD_INT 216
3679: PPUSH
3680: CALL 3580 0 2
// ResAllTechs ( 1 , lab2 ) ;
3684: LD_INT 1
3686: PPUSH
3687: LD_INT 200
3689: PPUSH
3690: CALL 3580 0 2
// end ;
3694: END
// export function pojazdy ; begin
3695: LD_INT 0
3697: PPUSH
// ; Pojazd1 = AddComConstruct ( fabryka1 , 4 , engine_combustion , control_manual , 5 ) ;
3698: LD_ADDR_EXP 22
3702: PUSH
3703: LD_INT 223
3705: PPUSH
3706: LD_INT 4
3708: PPUSH
3709: LD_INT 1
3711: PPUSH
3712: LD_INT 1
3714: PPUSH
3715: LD_INT 5
3717: PPUSH
3718: CALL_OW 185
3722: ST_TO_ADDR
// Pojazd2 = AddComConstruct ( fabryka1 , 4 , engine_combustion , control_manual , 3 ) ;
3723: LD_ADDR_EXP 23
3727: PUSH
3728: LD_INT 223
3730: PPUSH
3731: LD_INT 4
3733: PPUSH
3734: LD_INT 1
3736: PPUSH
3737: LD_INT 1
3739: PPUSH
3740: LD_INT 3
3742: PPUSH
3743: CALL_OW 185
3747: ST_TO_ADDR
// Pojazd3 = AddComConstruct ( fabryka1 , 4 , engine_combustion , control_manual , 5 ) ;
3748: LD_ADDR_EXP 24
3752: PUSH
3753: LD_INT 223
3755: PPUSH
3756: LD_INT 4
3758: PPUSH
3759: LD_INT 1
3761: PPUSH
3762: LD_INT 1
3764: PPUSH
3765: LD_INT 5
3767: PPUSH
3768: CALL_OW 185
3772: ST_TO_ADDR
// Pojazd4 = AddComConstruct ( fabryka1 , 4 , engine_combustion , control_manual , 4 ) ;
3773: LD_ADDR_EXP 25
3777: PUSH
3778: LD_INT 223
3780: PPUSH
3781: LD_INT 4
3783: PPUSH
3784: LD_INT 1
3786: PPUSH
3787: LD_INT 1
3789: PPUSH
3790: LD_INT 4
3792: PPUSH
3793: CALL_OW 185
3797: ST_TO_ADDR
// end ; end_of_file
3798: LD_VAR 0 1
3802: RET
// export x1 , x2 , x3 , z1 , z2 , z3 ; export function Russian2 ; begin
3803: LD_INT 0
3805: PPUSH
// ; vc_chassis = 21 ;
3806: LD_ADDR_OWVAR 37
3810: PUSH
3811: LD_INT 21
3813: ST_TO_ADDR
// vc_engine = engine_combustion ;
3814: LD_ADDR_OWVAR 39
3818: PUSH
3819: LD_INT 1
3821: ST_TO_ADDR
// vc_control = control_manual ;
3822: LD_ADDR_OWVAR 38
3826: PUSH
3827: LD_INT 1
3829: ST_TO_ADDR
// vc_weapon = 43 ;
3830: LD_ADDR_OWVAR 40
3834: PUSH
3835: LD_INT 43
3837: ST_TO_ADDR
// x1 = CreateVehicle ;
3838: LD_ADDR_EXP 26
3842: PUSH
3843: CALL_OW 45
3847: ST_TO_ADDR
// x2 = CreateVehicle ;
3848: LD_ADDR_EXP 27
3852: PUSH
3853: CALL_OW 45
3857: ST_TO_ADDR
// x3 = CreateVehicle ;
3858: LD_ADDR_EXP 28
3862: PUSH
3863: CALL_OW 45
3867: ST_TO_ADDR
// hc_class = 3 ;
3868: LD_ADDR_OWVAR 28
3872: PUSH
3873: LD_INT 3
3875: ST_TO_ADDR
// hc_name =  ;
3876: LD_ADDR_OWVAR 26
3880: PUSH
3881: LD_STRING 
3883: ST_TO_ADDR
// uc_side = 6 ;
3884: LD_ADDR_OWVAR 20
3888: PUSH
3889: LD_INT 6
3891: ST_TO_ADDR
// hc_gallery =  ;
3892: LD_ADDR_OWVAR 33
3896: PUSH
3897: LD_STRING 
3899: ST_TO_ADDR
// hc_sex = sex_male ;
3900: LD_ADDR_OWVAR 27
3904: PUSH
3905: LD_INT 1
3907: ST_TO_ADDR
// hc_skills = [ 3 , 3 , 5 , 3 ] ;
3908: LD_ADDR_OWVAR 31
3912: PUSH
3913: LD_INT 3
3915: PUSH
3916: LD_INT 3
3918: PUSH
3919: LD_INT 5
3921: PUSH
3922: LD_INT 3
3924: PUSH
3925: EMPTY
3926: LIST
3927: LIST
3928: LIST
3929: LIST
3930: ST_TO_ADDR
// z1 = CreateHuman ;
3931: LD_ADDR_EXP 29
3935: PUSH
3936: CALL_OW 44
3940: ST_TO_ADDR
// z2 = CreateHuman ;
3941: LD_ADDR_EXP 30
3945: PUSH
3946: CALL_OW 44
3950: ST_TO_ADDR
// z3 = CreateHuman ;
3951: LD_ADDR_EXP 31
3955: PUSH
3956: CALL_OW 44
3960: ST_TO_ADDR
// PlaceHumanInUnit ( z1 , x1 ) ;
3961: LD_EXP 29
3965: PPUSH
3966: LD_EXP 26
3970: PPUSH
3971: CALL_OW 52
// PlaceHumanInUnit ( z2 , x2 ) ;
3975: LD_EXP 30
3979: PPUSH
3980: LD_EXP 27
3984: PPUSH
3985: CALL_OW 52
// PlaceHumanInUnit ( z3 , x3 ) ;
3989: LD_EXP 31
3993: PPUSH
3994: LD_EXP 28
3998: PPUSH
3999: CALL_OW 52
// PlaceUnitArea ( x1 , ATTACK2 , false ) ;
4003: LD_EXP 26
4007: PPUSH
4008: LD_INT 7
4010: PPUSH
4011: LD_INT 0
4013: PPUSH
4014: CALL_OW 49
// PlaceUnitArea ( x2 , ATTACK2 , false ) ;
4018: LD_EXP 27
4022: PPUSH
4023: LD_INT 7
4025: PPUSH
4026: LD_INT 0
4028: PPUSH
4029: CALL_OW 49
// PlaceUnitArea ( x3 , ATTACK2 , false ) ;
4033: LD_EXP 28
4037: PPUSH
4038: LD_INT 7
4040: PPUSH
4041: LD_INT 0
4043: PPUSH
4044: CALL_OW 49
// AddComAgressiveMove ( [ x1 , x2 , x3 ] , 88 , 103 ) ;
4048: LD_EXP 26
4052: PUSH
4053: LD_EXP 27
4057: PUSH
4058: LD_EXP 28
4062: PUSH
4063: EMPTY
4064: LIST
4065: LIST
4066: LIST
4067: PPUSH
4068: LD_INT 88
4070: PPUSH
4071: LD_INT 103
4073: PPUSH
4074: CALL_OW 174
// end ; end_of_file
4078: LD_VAR 0 1
4082: RET
// export s1 , s2 , s3 , s4 ; export function Russian3 ; begin
4083: LD_INT 0
4085: PPUSH
// ; vc_chassis = 21 ;
4086: LD_ADDR_OWVAR 37
4090: PUSH
4091: LD_INT 21
4093: ST_TO_ADDR
// vc_engine = engine_combustion ;
4094: LD_ADDR_OWVAR 39
4098: PUSH
4099: LD_INT 1
4101: ST_TO_ADDR
// vc_control = control_manual ;
4102: LD_ADDR_OWVAR 38
4106: PUSH
4107: LD_INT 1
4109: ST_TO_ADDR
// vc_weapon = 44 ;
4110: LD_ADDR_OWVAR 40
4114: PUSH
4115: LD_INT 44
4117: ST_TO_ADDR
// s1 = CreateVehicle ;
4118: LD_ADDR_EXP 32
4122: PUSH
4123: CALL_OW 45
4127: ST_TO_ADDR
// s2 = CreateVehicle ;
4128: LD_ADDR_EXP 33
4132: PUSH
4133: CALL_OW 45
4137: ST_TO_ADDR
// hc_class = 3 ;
4138: LD_ADDR_OWVAR 28
4142: PUSH
4143: LD_INT 3
4145: ST_TO_ADDR
// hc_name =  ;
4146: LD_ADDR_OWVAR 26
4150: PUSH
4151: LD_STRING 
4153: ST_TO_ADDR
// uc_side = 6 ;
4154: LD_ADDR_OWVAR 20
4158: PUSH
4159: LD_INT 6
4161: ST_TO_ADDR
// hc_gallery =  ;
4162: LD_ADDR_OWVAR 33
4166: PUSH
4167: LD_STRING 
4169: ST_TO_ADDR
// hc_sex = sex_male ;
4170: LD_ADDR_OWVAR 27
4174: PUSH
4175: LD_INT 1
4177: ST_TO_ADDR
// hc_skills = [ 3 , 3 , 5 , 3 ] ;
4178: LD_ADDR_OWVAR 31
4182: PUSH
4183: LD_INT 3
4185: PUSH
4186: LD_INT 3
4188: PUSH
4189: LD_INT 5
4191: PUSH
4192: LD_INT 3
4194: PUSH
4195: EMPTY
4196: LIST
4197: LIST
4198: LIST
4199: LIST
4200: ST_TO_ADDR
// s3 = CreateHuman ;
4201: LD_ADDR_EXP 34
4205: PUSH
4206: CALL_OW 44
4210: ST_TO_ADDR
// s4 = CreateHuman ;
4211: LD_ADDR_EXP 35
4215: PUSH
4216: CALL_OW 44
4220: ST_TO_ADDR
// PlaceHumanInUnit ( s3 , s1 ) ;
4221: LD_EXP 34
4225: PPUSH
4226: LD_EXP 32
4230: PPUSH
4231: CALL_OW 52
// PlaceHumanInUnit ( s4 , s2 ) ;
4235: LD_EXP 35
4239: PPUSH
4240: LD_EXP 33
4244: PPUSH
4245: CALL_OW 52
// PlaceUnitArea ( s1 , ATTACK2 , false ) ;
4249: LD_EXP 32
4253: PPUSH
4254: LD_INT 7
4256: PPUSH
4257: LD_INT 0
4259: PPUSH
4260: CALL_OW 49
// PlaceUnitArea ( s2 , ATTACK2 , false ) ;
4264: LD_EXP 33
4268: PPUSH
4269: LD_INT 7
4271: PPUSH
4272: LD_INT 0
4274: PPUSH
4275: CALL_OW 49
// AddComAgressiveMove ( [ s1 , s2 ] , 83 , 103 ) ;
4279: LD_EXP 32
4283: PUSH
4284: LD_EXP 33
4288: PUSH
4289: EMPTY
4290: LIST
4291: LIST
4292: PPUSH
4293: LD_INT 83
4295: PPUSH
4296: LD_INT 103
4298: PPUSH
4299: CALL_OW 174
// end ; end_of_file
4303: LD_VAR 0 1
4307: RET
// export v1 , v2 , v3 , v4 ; export function Russian4_2 ; begin
4308: LD_INT 0
4310: PPUSH
// ; SoldLevel = [ 1 , 2 , 2 ] [ Difficulty ] ;
4311: LD_ADDR_EXP 4
4315: PUSH
4316: LD_INT 1
4318: PUSH
4319: LD_INT 2
4321: PUSH
4322: LD_INT 2
4324: PUSH
4325: EMPTY
4326: LIST
4327: LIST
4328: LIST
4329: PUSH
4330: LD_OWVAR 67
4334: ARRAY
4335: ST_TO_ADDR
// EngLevel = [ 0 , 1 , 2 ] [ Difficulty ] ;
4336: LD_ADDR_EXP 5
4340: PUSH
4341: LD_INT 0
4343: PUSH
4344: LD_INT 1
4346: PUSH
4347: LD_INT 2
4349: PUSH
4350: EMPTY
4351: LIST
4352: LIST
4353: LIST
4354: PUSH
4355: LD_OWVAR 67
4359: ARRAY
4360: ST_TO_ADDR
// MechLevel = [ 6 , 7 , 8 ] [ Difficulty ] ;
4361: LD_ADDR_EXP 6
4365: PUSH
4366: LD_INT 6
4368: PUSH
4369: LD_INT 7
4371: PUSH
4372: LD_INT 8
4374: PUSH
4375: EMPTY
4376: LIST
4377: LIST
4378: LIST
4379: PUSH
4380: LD_OWVAR 67
4384: ARRAY
4385: ST_TO_ADDR
// SciLevel = [ 0 , 0 , 1 ] [ Difficulty ] ;
4386: LD_ADDR_EXP 7
4390: PUSH
4391: LD_INT 0
4393: PUSH
4394: LD_INT 0
4396: PUSH
4397: LD_INT 1
4399: PUSH
4400: EMPTY
4401: LIST
4402: LIST
4403: LIST
4404: PUSH
4405: LD_OWVAR 67
4409: ARRAY
4410: ST_TO_ADDR
// vc_chassis = 21 ;
4411: LD_ADDR_OWVAR 37
4415: PUSH
4416: LD_INT 21
4418: ST_TO_ADDR
// vc_engine = engine_combustion ;
4419: LD_ADDR_OWVAR 39
4423: PUSH
4424: LD_INT 1
4426: ST_TO_ADDR
// vc_control = control_manual ;
4427: LD_ADDR_OWVAR 38
4431: PUSH
4432: LD_INT 1
4434: ST_TO_ADDR
// vc_weapon = 44 ;
4435: LD_ADDR_OWVAR 40
4439: PUSH
4440: LD_INT 44
4442: ST_TO_ADDR
// v1 = CreateVehicle ;
4443: LD_ADDR_EXP 36
4447: PUSH
4448: CALL_OW 45
4452: ST_TO_ADDR
// v2 = CreateVehicle ;
4453: LD_ADDR_EXP 37
4457: PUSH
4458: CALL_OW 45
4462: ST_TO_ADDR
// hc_class = 3 ;
4463: LD_ADDR_OWVAR 28
4467: PUSH
4468: LD_INT 3
4470: ST_TO_ADDR
// hc_name =  ;
4471: LD_ADDR_OWVAR 26
4475: PUSH
4476: LD_STRING 
4478: ST_TO_ADDR
// uc_side = 6 ;
4479: LD_ADDR_OWVAR 20
4483: PUSH
4484: LD_INT 6
4486: ST_TO_ADDR
// hc_gallery =  ;
4487: LD_ADDR_OWVAR 33
4491: PUSH
4492: LD_STRING 
4494: ST_TO_ADDR
// hc_sex = sex_male ;
4495: LD_ADDR_OWVAR 27
4499: PUSH
4500: LD_INT 1
4502: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
4503: LD_ADDR_OWVAR 31
4507: PUSH
4508: LD_EXP 4
4512: PUSH
4513: LD_EXP 5
4517: PUSH
4518: LD_EXP 6
4522: PUSH
4523: LD_EXP 7
4527: PUSH
4528: EMPTY
4529: LIST
4530: LIST
4531: LIST
4532: LIST
4533: ST_TO_ADDR
// v3 = CreateHuman ;
4534: LD_ADDR_EXP 38
4538: PUSH
4539: CALL_OW 44
4543: ST_TO_ADDR
// v4 = CreateHuman ;
4544: LD_ADDR_EXP 39
4548: PUSH
4549: CALL_OW 44
4553: ST_TO_ADDR
// PlaceHumanInUnit ( v3 , v1 ) ;
4554: LD_EXP 38
4558: PPUSH
4559: LD_EXP 36
4563: PPUSH
4564: CALL_OW 52
// PlaceHumanInUnit ( v4 , v2 ) ;
4568: LD_EXP 39
4572: PPUSH
4573: LD_EXP 37
4577: PPUSH
4578: CALL_OW 52
// PlaceUnitArea ( v1 , ATTACK3 , false ) ;
4582: LD_EXP 36
4586: PPUSH
4587: LD_INT 8
4589: PPUSH
4590: LD_INT 0
4592: PPUSH
4593: CALL_OW 49
// PlaceUnitArea ( v2 , ATTACK3 , false ) ;
4597: LD_EXP 37
4601: PPUSH
4602: LD_INT 8
4604: PPUSH
4605: LD_INT 0
4607: PPUSH
4608: CALL_OW 49
// AddComAgressiveMove ( [ v1 , v2 ] , 112 , 68 ) ;
4612: LD_EXP 36
4616: PUSH
4617: LD_EXP 37
4621: PUSH
4622: EMPTY
4623: LIST
4624: LIST
4625: PPUSH
4626: LD_INT 112
4628: PPUSH
4629: LD_INT 68
4631: PPUSH
4632: CALL_OW 174
// end ; end_of_file
4636: LD_VAR 0 1
4640: RET
// export q1 , q2 , q3 , t1 , t2 , t3 ; export function Russian4_1 ; begin
4641: LD_INT 0
4643: PPUSH
// ; SoldLevel = [ 1 , 2 , 2 ] [ Difficulty ] ;
4644: LD_ADDR_EXP 4
4648: PUSH
4649: LD_INT 1
4651: PUSH
4652: LD_INT 2
4654: PUSH
4655: LD_INT 2
4657: PUSH
4658: EMPTY
4659: LIST
4660: LIST
4661: LIST
4662: PUSH
4663: LD_OWVAR 67
4667: ARRAY
4668: ST_TO_ADDR
// EngLevel = [ 0 , 1 , 2 ] [ Difficulty ] ;
4669: LD_ADDR_EXP 5
4673: PUSH
4674: LD_INT 0
4676: PUSH
4677: LD_INT 1
4679: PUSH
4680: LD_INT 2
4682: PUSH
4683: EMPTY
4684: LIST
4685: LIST
4686: LIST
4687: PUSH
4688: LD_OWVAR 67
4692: ARRAY
4693: ST_TO_ADDR
// MechLevel = [ 6 , 7 , 8 ] [ Difficulty ] ;
4694: LD_ADDR_EXP 6
4698: PUSH
4699: LD_INT 6
4701: PUSH
4702: LD_INT 7
4704: PUSH
4705: LD_INT 8
4707: PUSH
4708: EMPTY
4709: LIST
4710: LIST
4711: LIST
4712: PUSH
4713: LD_OWVAR 67
4717: ARRAY
4718: ST_TO_ADDR
// SciLevel = [ 0 , 0 , 1 ] [ Difficulty ] ;
4719: LD_ADDR_EXP 7
4723: PUSH
4724: LD_INT 0
4726: PUSH
4727: LD_INT 0
4729: PUSH
4730: LD_INT 1
4732: PUSH
4733: EMPTY
4734: LIST
4735: LIST
4736: LIST
4737: PUSH
4738: LD_OWVAR 67
4742: ARRAY
4743: ST_TO_ADDR
// vc_chassis = 21 ;
4744: LD_ADDR_OWVAR 37
4748: PUSH
4749: LD_INT 21
4751: ST_TO_ADDR
// vc_engine = engine_combustion ;
4752: LD_ADDR_OWVAR 39
4756: PUSH
4757: LD_INT 1
4759: ST_TO_ADDR
// vc_control = control_manual ;
4760: LD_ADDR_OWVAR 38
4764: PUSH
4765: LD_INT 1
4767: ST_TO_ADDR
// vc_weapon = 43 ;
4768: LD_ADDR_OWVAR 40
4772: PUSH
4773: LD_INT 43
4775: ST_TO_ADDR
// t1 = CreateVehicle ;
4776: LD_ADDR_EXP 43
4780: PUSH
4781: CALL_OW 45
4785: ST_TO_ADDR
// t2 = CreateVehicle ;
4786: LD_ADDR_EXP 44
4790: PUSH
4791: CALL_OW 45
4795: ST_TO_ADDR
// t3 = CreateVehicle ;
4796: LD_ADDR_EXP 45
4800: PUSH
4801: CALL_OW 45
4805: ST_TO_ADDR
// hc_class = 3 ;
4806: LD_ADDR_OWVAR 28
4810: PUSH
4811: LD_INT 3
4813: ST_TO_ADDR
// hc_name =  ;
4814: LD_ADDR_OWVAR 26
4818: PUSH
4819: LD_STRING 
4821: ST_TO_ADDR
// uc_side = 6 ;
4822: LD_ADDR_OWVAR 20
4826: PUSH
4827: LD_INT 6
4829: ST_TO_ADDR
// hc_gallery =  ;
4830: LD_ADDR_OWVAR 33
4834: PUSH
4835: LD_STRING 
4837: ST_TO_ADDR
// hc_sex = sex_male ;
4838: LD_ADDR_OWVAR 27
4842: PUSH
4843: LD_INT 1
4845: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
4846: LD_ADDR_OWVAR 31
4850: PUSH
4851: LD_EXP 4
4855: PUSH
4856: LD_EXP 5
4860: PUSH
4861: LD_EXP 6
4865: PUSH
4866: LD_EXP 7
4870: PUSH
4871: EMPTY
4872: LIST
4873: LIST
4874: LIST
4875: LIST
4876: ST_TO_ADDR
// q1 = CreateHuman ;
4877: LD_ADDR_EXP 40
4881: PUSH
4882: CALL_OW 44
4886: ST_TO_ADDR
// q2 = CreateHuman ;
4887: LD_ADDR_EXP 41
4891: PUSH
4892: CALL_OW 44
4896: ST_TO_ADDR
// q3 = CreateHuman ;
4897: LD_ADDR_EXP 42
4901: PUSH
4902: CALL_OW 44
4906: ST_TO_ADDR
// PlaceHumanInUnit ( q1 , t1 ) ;
4907: LD_EXP 40
4911: PPUSH
4912: LD_EXP 43
4916: PPUSH
4917: CALL_OW 52
// PlaceHumanInUnit ( q2 , t2 ) ;
4921: LD_EXP 41
4925: PPUSH
4926: LD_EXP 44
4930: PPUSH
4931: CALL_OW 52
// PlaceHumanInUnit ( q3 , t3 ) ;
4935: LD_EXP 42
4939: PPUSH
4940: LD_EXP 45
4944: PPUSH
4945: CALL_OW 52
// PlaceUnitArea ( t1 , ATTACK3 , false ) ;
4949: LD_EXP 43
4953: PPUSH
4954: LD_INT 8
4956: PPUSH
4957: LD_INT 0
4959: PPUSH
4960: CALL_OW 49
// PlaceUnitArea ( t2 , ATTACK3 , false ) ;
4964: LD_EXP 44
4968: PPUSH
4969: LD_INT 8
4971: PPUSH
4972: LD_INT 0
4974: PPUSH
4975: CALL_OW 49
// PlaceUnitArea ( t3 , ATTACK3 , false ) ;
4979: LD_EXP 45
4983: PPUSH
4984: LD_INT 8
4986: PPUSH
4987: LD_INT 0
4989: PPUSH
4990: CALL_OW 49
// AddComAgressiveMove ( [ t1 , t2 , t3 ] , 112 , 68 ) ;
4994: LD_EXP 43
4998: PUSH
4999: LD_EXP 44
5003: PUSH
5004: LD_EXP 45
5008: PUSH
5009: EMPTY
5010: LIST
5011: LIST
5012: LIST
5013: PPUSH
5014: LD_INT 112
5016: PPUSH
5017: LD_INT 68
5019: PPUSH
5020: CALL_OW 174
// end ; end_of_file
5024: LD_VAR 0 1
5028: RET
// export AM1 , AM2 , AM3 , AM4 , AM5 , AM6 ; export function WSPARCIE ; begin
5029: LD_INT 0
5031: PPUSH
// ; vc_chassis = 4 ;
5032: LD_ADDR_OWVAR 37
5036: PUSH
5037: LD_INT 4
5039: ST_TO_ADDR
// vc_engine = engine_combustion ;
5040: LD_ADDR_OWVAR 39
5044: PUSH
5045: LD_INT 1
5047: ST_TO_ADDR
// vc_control = control_manual ;
5048: LD_ADDR_OWVAR 38
5052: PUSH
5053: LD_INT 1
5055: ST_TO_ADDR
// vc_weapon = 5 ;
5056: LD_ADDR_OWVAR 40
5060: PUSH
5061: LD_INT 5
5063: ST_TO_ADDR
// AM1 = CreateVehicle ;
5064: LD_ADDR_EXP 46
5068: PUSH
5069: CALL_OW 45
5073: ST_TO_ADDR
// AM2 = CreateVehicle ;
5074: LD_ADDR_EXP 47
5078: PUSH
5079: CALL_OW 45
5083: ST_TO_ADDR
// AM3 = CreateVehicle ;
5084: LD_ADDR_EXP 48
5088: PUSH
5089: CALL_OW 45
5093: ST_TO_ADDR
// hc_class = 3 ;
5094: LD_ADDR_OWVAR 28
5098: PUSH
5099: LD_INT 3
5101: ST_TO_ADDR
// hc_name =  ;
5102: LD_ADDR_OWVAR 26
5106: PUSH
5107: LD_STRING 
5109: ST_TO_ADDR
// uc_side = 1 ;
5110: LD_ADDR_OWVAR 20
5114: PUSH
5115: LD_INT 1
5117: ST_TO_ADDR
// uc_nation = 1 ;
5118: LD_ADDR_OWVAR 21
5122: PUSH
5123: LD_INT 1
5125: ST_TO_ADDR
// hc_gallery =  ;
5126: LD_ADDR_OWVAR 33
5130: PUSH
5131: LD_STRING 
5133: ST_TO_ADDR
// hc_sex = sex_male ;
5134: LD_ADDR_OWVAR 27
5138: PUSH
5139: LD_INT 1
5141: ST_TO_ADDR
// hc_skills = [ 1 , 2 , 8 , 0 ] ;
5142: LD_ADDR_OWVAR 31
5146: PUSH
5147: LD_INT 1
5149: PUSH
5150: LD_INT 2
5152: PUSH
5153: LD_INT 8
5155: PUSH
5156: LD_INT 0
5158: PUSH
5159: EMPTY
5160: LIST
5161: LIST
5162: LIST
5163: LIST
5164: ST_TO_ADDR
// AM4 = CreateHuman ;
5165: LD_ADDR_EXP 49
5169: PUSH
5170: CALL_OW 44
5174: ST_TO_ADDR
// AM5 = CreateHuman ;
5175: LD_ADDR_EXP 50
5179: PUSH
5180: CALL_OW 44
5184: ST_TO_ADDR
// AM6 = CreateHuman ;
5185: LD_ADDR_EXP 51
5189: PUSH
5190: CALL_OW 44
5194: ST_TO_ADDR
// PlaceHumanInUnit ( AM4 , AM3 ) ;
5195: LD_EXP 49
5199: PPUSH
5200: LD_EXP 48
5204: PPUSH
5205: CALL_OW 52
// PlaceHumanInUnit ( AM6 , AM2 ) ;
5209: LD_EXP 51
5213: PPUSH
5214: LD_EXP 47
5218: PPUSH
5219: CALL_OW 52
// PlaceHumanInUnit ( AM5 , AM1 ) ;
5223: LD_EXP 50
5227: PPUSH
5228: LD_EXP 46
5232: PPUSH
5233: CALL_OW 52
// PlaceUnitArea ( AM1 , PREPARE3 , false ) ;
5237: LD_EXP 46
5241: PPUSH
5242: LD_INT 9
5244: PPUSH
5245: LD_INT 0
5247: PPUSH
5248: CALL_OW 49
// PlaceUnitArea ( AM2 , PREPARE3 , false ) ;
5252: LD_EXP 47
5256: PPUSH
5257: LD_INT 9
5259: PPUSH
5260: LD_INT 0
5262: PPUSH
5263: CALL_OW 49
// PlaceUnitArea ( AM3 , PREPARE3 , false ) ;
5267: LD_EXP 48
5271: PPUSH
5272: LD_INT 9
5274: PPUSH
5275: LD_INT 0
5277: PPUSH
5278: CALL_OW 49
// AddComAgressiveMove ( [ AM1 , AM2 , AM3 ] , 50 , 5 ) ;
5282: LD_EXP 46
5286: PUSH
5287: LD_EXP 47
5291: PUSH
5292: LD_EXP 48
5296: PUSH
5297: EMPTY
5298: LIST
5299: LIST
5300: LIST
5301: PPUSH
5302: LD_INT 50
5304: PPUSH
5305: LD_INT 5
5307: PPUSH
5308: CALL_OW 174
// end ; end_of_file
5312: LD_VAR 0 1
5316: RET
// export Center ; every 0 0$1 trigger Center = 1 do
5317: LD_EXP 52
5321: PUSH
5322: LD_INT 1
5324: EQUAL
5325: IFFALSE 5347
5327: GO 5329
5329: DISABLE
// begin ; CenterNowOnUnits ( OWChyba ) ;
5330: LD_EXP 15
5334: PPUSH
5335: CALL_OW 87
// CenterNowOnUnits ( f1 ) ;
5339: LD_INT 432
5341: PPUSH
5342: CALL_OW 87
// enable ;
5346: ENABLE
// end ; end_of_file
5347: END
// export function medale ; begin
5348: LD_INT 0
5350: PPUSH
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) > 8 then
5351: LD_INT 22
5353: PUSH
5354: LD_INT 4
5356: PUSH
5357: EMPTY
5358: LIST
5359: LIST
5360: PUSH
5361: LD_INT 21
5363: PUSH
5364: LD_INT 1
5366: PUSH
5367: EMPTY
5368: LIST
5369: LIST
5370: PUSH
5371: EMPTY
5372: LIST
5373: LIST
5374: PPUSH
5375: CALL_OW 69
5379: PUSH
5380: LD_INT 8
5382: GREATER
5383: IFFALSE 5397
// begin AddMedal ( med1 , 1 ) ;
5385: LD_STRING med1
5387: PPUSH
5388: LD_INT 1
5390: PPUSH
5391: CALL_OW 101
// end else
5395: GO 5408
// begin AddMedal ( med1 , - 1 ) ;
5397: LD_STRING med1
5399: PPUSH
5400: LD_INT 1
5402: NEG
5403: PPUSH
5404: CALL_OW 101
// end ; if GetTech ( tech_weap2 , 4 ) = state_researched and GetTech ( tech_gun , 4 ) = State_researched and GetTech ( tech_gatling , 4 ) then
5408: LD_INT 52
5410: PPUSH
5411: LD_INT 4
5413: PPUSH
5414: CALL_OW 321
5418: PUSH
5419: LD_INT 2
5421: EQUAL
5422: PUSH
5423: LD_INT 39
5425: PPUSH
5426: LD_INT 4
5428: PPUSH
5429: CALL_OW 321
5433: PUSH
5434: LD_INT 2
5436: EQUAL
5437: AND
5438: PUSH
5439: LD_INT 69
5441: PPUSH
5442: LD_INT 4
5444: PPUSH
5445: CALL_OW 321
5449: AND
5450: IFFALSE 5464
// begin AddMedal ( med3 , 1 ) ;
5452: LD_STRING med3
5454: PPUSH
5455: LD_INT 1
5457: PPUSH
5458: CALL_OW 101
// end else
5462: GO 5475
// begin AddMedal ( med3 , - 1 ) ;
5464: LD_STRING med3
5466: PPUSH
5467: LD_INT 1
5469: NEG
5470: PPUSH
5471: CALL_OW 101
// end ; AddMedal ( med2 , 1 ) ;
5475: LD_STRING med2
5477: PPUSH
5478: LD_INT 1
5480: PPUSH
5481: CALL_OW 101
// givemedals ( MAIN ) ;
5485: LD_STRING MAIN
5487: PPUSH
5488: CALL_OW 102
// end ; end_of_file
5492: LD_VAR 0 1
5496: RET
// every 0 0$1 trigger IsDead ( OWChyba ) do
5497: LD_EXP 15
5501: PPUSH
5502: CALL_OW 301
5506: IFFALSE 5518
5508: GO 5510
5510: DISABLE
// begin YouLost ( ded ) ;
5511: LD_STRING ded
5513: PPUSH
5514: CALL_OW 104
// end ;
5518: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 4 then
5519: LD_VAR 0 1
5523: PUSH
5524: LD_INT 1
5526: EQUAL
5527: PUSH
5528: LD_VAR 0 2
5532: PUSH
5533: LD_INT 4
5535: EQUAL
5536: AND
5537: IFFALSE 5546
// begin YouLost ( SojAtak ) ;
5539: LD_STRING SojAtak
5541: PPUSH
5542: CALL_OW 104
// end ; end ;
5546: PPOPN 2
5548: END
// every 0 0$1 trigger IsInArea ( OWChyba , UCIECZKA ) marked 110 do
5549: LD_EXP 15
5553: PPUSH
5554: LD_INT 12
5556: PPUSH
5557: CALL_OW 308
5561: IFFALSE 5573
5563: GO 5565
5565: DISABLE
// begin YouLost ( Ucieczka ) ;
5566: LD_STRING Ucieczka
5568: PPUSH
5569: CALL_OW 104
// end ; end_of_file
5573: END
// every 1 do var un , engi ;
5574: GO 5576
5576: DISABLE
5577: LD_INT 0
5579: PPUSH
5580: PPUSH
// begin enable ;
5581: ENABLE
// Engi = FilterAllUnits ( [ [ f_side , 4 ] , [ f_class , 2 ] ] ) or FilterAllUnits ( [ [ f_side , 4 ] , [ f_weapon , 12 ] ] ) ;
5582: LD_ADDR_VAR 0 2
5586: PUSH
5587: LD_INT 22
5589: PUSH
5590: LD_INT 4
5592: PUSH
5593: EMPTY
5594: LIST
5595: LIST
5596: PUSH
5597: LD_INT 25
5599: PUSH
5600: LD_INT 2
5602: PUSH
5603: EMPTY
5604: LIST
5605: LIST
5606: PUSH
5607: EMPTY
5608: LIST
5609: LIST
5610: PPUSH
5611: CALL_OW 69
5615: PUSH
5616: LD_INT 22
5618: PUSH
5619: LD_INT 4
5621: PUSH
5622: EMPTY
5623: LIST
5624: LIST
5625: PUSH
5626: LD_INT 34
5628: PUSH
5629: LD_INT 12
5631: PUSH
5632: EMPTY
5633: LIST
5634: LIST
5635: PUSH
5636: EMPTY
5637: LIST
5638: LIST
5639: PPUSH
5640: CALL_OW 69
5644: OR
5645: ST_TO_ADDR
// for un in Engi do
5646: LD_ADDR_VAR 0 1
5650: PUSH
5651: LD_VAR 0 2
5655: PUSH
5656: FOR_IN
5657: IFFALSE 5721
// begin if IsInArea ( un , AntyRubby ) then
5659: LD_VAR 0 1
5663: PPUSH
5664: LD_INT 13
5666: PPUSH
5667: CALL_OW 308
5671: IFFALSE 5719
// begin Ingameon ;
5673: CALL_OW 8
// ComStop ( un ) ;
5677: LD_VAR 0 1
5681: PPUSH
5682: CALL_OW 141
// wait ( 0 0$0.1 ) ;
5686: LD_INT 4
5688: PPUSH
5689: CALL_OW 67
// ComMoveXY ( un , 123 , 119 ) ;
5693: LD_VAR 0 1
5697: PPUSH
5698: LD_INT 123
5700: PPUSH
5701: LD_INT 119
5703: PPUSH
5704: CALL_OW 111
// Wait ( 0 0$3 ) ;
5708: LD_INT 105
5710: PPUSH
5711: CALL_OW 67
// InGameOff ;
5715: CALL_OW 9
// end ; end ;
5719: GO 5656
5721: POP
5722: POP
// end ; end_of_file
5723: PPOPN 2
5725: END
// every 0 0$1 do
5726: GO 5728
5728: DISABLE
// begin if Difficulty = 1 then
5729: LD_OWVAR 67
5733: PUSH
5734: LD_INT 1
5736: EQUAL
5737: IFFALSE 5817
// begin SetTech ( 57 , 2 , state_Researched ) ;
5739: LD_INT 57
5741: PPUSH
5742: LD_INT 2
5744: PPUSH
5745: LD_INT 2
5747: PPUSH
5748: CALL_OW 322
// SetTech ( 48 , 2 , state_Researched ) ;
5752: LD_INT 48
5754: PPUSH
5755: LD_INT 2
5757: PPUSH
5758: LD_INT 2
5760: PPUSH
5761: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
5765: LD_INT 51
5767: PPUSH
5768: LD_INT 2
5770: PPUSH
5771: LD_INT 2
5773: PPUSH
5774: CALL_OW 322
// SetTech ( 57 , 6 , state_Researched ) ;
5778: LD_INT 57
5780: PPUSH
5781: LD_INT 6
5783: PPUSH
5784: LD_INT 2
5786: PPUSH
5787: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
5791: LD_INT 48
5793: PPUSH
5794: LD_INT 6
5796: PPUSH
5797: LD_INT 2
5799: PPUSH
5800: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
5804: LD_INT 51
5806: PPUSH
5807: LD_INT 6
5809: PPUSH
5810: LD_INT 2
5812: PPUSH
5813: CALL_OW 322
// end ; if Difficulty = 2 then
5817: LD_OWVAR 67
5821: PUSH
5822: LD_INT 2
5824: EQUAL
5825: IFFALSE 5957
// begin SetTech ( 57 , 2 , state_Researched ) ;
5827: LD_INT 57
5829: PPUSH
5830: LD_INT 2
5832: PPUSH
5833: LD_INT 2
5835: PPUSH
5836: CALL_OW 322
// SetTech ( 48 , 2 , state_Researched ) ;
5840: LD_INT 48
5842: PPUSH
5843: LD_INT 2
5845: PPUSH
5846: LD_INT 2
5848: PPUSH
5849: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
5853: LD_INT 51
5855: PPUSH
5856: LD_INT 2
5858: PPUSH
5859: LD_INT 2
5861: PPUSH
5862: CALL_OW 322
// SetTech ( 58 , 2 , state_Researched ) ;
5866: LD_INT 58
5868: PPUSH
5869: LD_INT 2
5871: PPUSH
5872: LD_INT 2
5874: PPUSH
5875: CALL_OW 322
// SetTech ( 49 , 2 , state_Researched ) ;
5879: LD_INT 49
5881: PPUSH
5882: LD_INT 2
5884: PPUSH
5885: LD_INT 2
5887: PPUSH
5888: CALL_OW 322
// SetTech ( 57 , 6 , state_Researched ) ;
5892: LD_INT 57
5894: PPUSH
5895: LD_INT 6
5897: PPUSH
5898: LD_INT 2
5900: PPUSH
5901: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
5905: LD_INT 48
5907: PPUSH
5908: LD_INT 6
5910: PPUSH
5911: LD_INT 2
5913: PPUSH
5914: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
5918: LD_INT 51
5920: PPUSH
5921: LD_INT 6
5923: PPUSH
5924: LD_INT 2
5926: PPUSH
5927: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
5931: LD_INT 58
5933: PPUSH
5934: LD_INT 6
5936: PPUSH
5937: LD_INT 2
5939: PPUSH
5940: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
5944: LD_INT 49
5946: PPUSH
5947: LD_INT 6
5949: PPUSH
5950: LD_INT 2
5952: PPUSH
5953: CALL_OW 322
// end ; if Difficulty = 3 then
5957: LD_OWVAR 67
5961: PUSH
5962: LD_INT 3
5964: EQUAL
5965: IFFALSE 6149
// begin SetTech ( 57 , 2 , state_Researched ) ;
5967: LD_INT 57
5969: PPUSH
5970: LD_INT 2
5972: PPUSH
5973: LD_INT 2
5975: PPUSH
5976: CALL_OW 322
// SetTech ( 48 , 2 , state_Researched ) ;
5980: LD_INT 48
5982: PPUSH
5983: LD_INT 2
5985: PPUSH
5986: LD_INT 2
5988: PPUSH
5989: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
5993: LD_INT 51
5995: PPUSH
5996: LD_INT 2
5998: PPUSH
5999: LD_INT 2
6001: PPUSH
6002: CALL_OW 322
// SetTech ( 58 , 2 , state_Researched ) ;
6006: LD_INT 58
6008: PPUSH
6009: LD_INT 2
6011: PPUSH
6012: LD_INT 2
6014: PPUSH
6015: CALL_OW 322
// SetTech ( 49 , 2 , state_Researched ) ;
6019: LD_INT 49
6021: PPUSH
6022: LD_INT 2
6024: PPUSH
6025: LD_INT 2
6027: PPUSH
6028: CALL_OW 322
// SetTech ( 52 , 2 , state_Researched ) ;
6032: LD_INT 52
6034: PPUSH
6035: LD_INT 2
6037: PPUSH
6038: LD_INT 2
6040: PPUSH
6041: CALL_OW 322
// SetTech ( 59 , 2 , state_Researched ) ;
6045: LD_INT 59
6047: PPUSH
6048: LD_INT 2
6050: PPUSH
6051: LD_INT 2
6053: PPUSH
6054: CALL_OW 322
// SetTech ( 57 , 6 , state_Researched ) ;
6058: LD_INT 57
6060: PPUSH
6061: LD_INT 6
6063: PPUSH
6064: LD_INT 2
6066: PPUSH
6067: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
6071: LD_INT 48
6073: PPUSH
6074: LD_INT 6
6076: PPUSH
6077: LD_INT 2
6079: PPUSH
6080: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
6084: LD_INT 51
6086: PPUSH
6087: LD_INT 6
6089: PPUSH
6090: LD_INT 2
6092: PPUSH
6093: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
6097: LD_INT 58
6099: PPUSH
6100: LD_INT 6
6102: PPUSH
6103: LD_INT 2
6105: PPUSH
6106: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
6110: LD_INT 49
6112: PPUSH
6113: LD_INT 6
6115: PPUSH
6116: LD_INT 2
6118: PPUSH
6119: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
6123: LD_INT 52
6125: PPUSH
6126: LD_INT 6
6128: PPUSH
6129: LD_INT 2
6131: PPUSH
6132: CALL_OW 322
// SetTech ( 59 , 6 , state_Researched ) ;
6136: LD_INT 59
6138: PPUSH
6139: LD_INT 6
6141: PPUSH
6142: LD_INT 2
6144: PPUSH
6145: CALL_OW 322
// end ; end ; end_of_file
6149: END
// export function WOWOWO ; var i , atakujacy , broniacy ; begin
6150: LD_INT 0
6152: PPUSH
6153: PPUSH
6154: PPUSH
6155: PPUSH
// broniacy = FilterAllUnits ( [ f_side , 1 ] ) ;
6156: LD_ADDR_VAR 0 4
6160: PUSH
6161: LD_INT 22
6163: PUSH
6164: LD_INT 1
6166: PUSH
6167: EMPTY
6168: LIST
6169: LIST
6170: PPUSH
6171: CALL_OW 69
6175: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ f_side , 6 ] ) ;
6176: LD_ADDR_VAR 0 3
6180: PUSH
6181: LD_INT 22
6183: PUSH
6184: LD_INT 6
6186: PUSH
6187: EMPTY
6188: LIST
6189: LIST
6190: PPUSH
6191: CALL_OW 69
6195: ST_TO_ADDR
// for i in atakujacy do
6196: LD_ADDR_VAR 0 2
6200: PUSH
6201: LD_VAR 0 3
6205: PUSH
6206: FOR_IN
6207: IFFALSE 6235
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
6209: LD_VAR 0 2
6213: PPUSH
6214: LD_VAR 0 4
6218: PPUSH
6219: LD_VAR 0 2
6223: PPUSH
6224: CALL_OW 74
6228: PPUSH
6229: CALL_OW 115
// end ;
6233: GO 6206
6235: POP
6236: POP
// end ;
6237: LD_VAR 0 1
6241: RET
// every 0 0$2 marked 123 do
6242: GO 6244
6244: DISABLE
// begin WOWOWO ;
6245: CALL 6150 0 0
// enable ;
6249: ENABLE
// end ; end_of_file
6250: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
6251: GO 6253
6253: DISABLE
6254: LD_INT 0
6256: PPUSH
6257: PPUSH
6258: PPUSH
6259: PPUSH
// begin enable ;
6260: ENABLE
// EnginerList := UnitsInside ( depot1 ) ;
6261: LD_ADDR_VAR 0 1
6265: PUSH
6266: LD_INT 2
6268: PPUSH
6269: CALL_OW 313
6273: ST_TO_ADDR
// buildings := FilterUnitsInArea ( FIX , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6274: LD_ADDR_VAR 0 3
6278: PUSH
6279: LD_INT 14
6281: PPUSH
6282: LD_INT 22
6284: PUSH
6285: LD_INT 3
6287: PUSH
6288: EMPTY
6289: LIST
6290: LIST
6291: PUSH
6292: LD_INT 21
6294: PUSH
6295: LD_INT 3
6297: PUSH
6298: EMPTY
6299: LIST
6300: LIST
6301: PUSH
6302: LD_INT 3
6304: PUSH
6305: LD_INT 24
6307: PUSH
6308: LD_INT 1000
6310: PUSH
6311: EMPTY
6312: LIST
6313: LIST
6314: PUSH
6315: EMPTY
6316: LIST
6317: LIST
6318: PUSH
6319: EMPTY
6320: LIST
6321: LIST
6322: LIST
6323: PUSH
6324: EMPTY
6325: LIST
6326: PPUSH
6327: CALL_OW 70
6331: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
6332: LD_ADDR_VAR 0 2
6336: PUSH
6337: LD_INT 22
6339: PUSH
6340: LD_INT 3
6342: PUSH
6343: EMPTY
6344: LIST
6345: LIST
6346: PUSH
6347: LD_INT 25
6349: PUSH
6350: LD_INT 2
6352: PUSH
6353: EMPTY
6354: LIST
6355: LIST
6356: PUSH
6357: EMPTY
6358: LIST
6359: LIST
6360: PUSH
6361: EMPTY
6362: LIST
6363: PPUSH
6364: CALL_OW 69
6368: ST_TO_ADDR
// if buildings > 0 then
6369: LD_VAR 0 3
6373: PUSH
6374: LD_INT 0
6376: GREATER
6377: IFFALSE 6539
// begin repeat for i = 1 to EnginerList do
6379: LD_ADDR_VAR 0 4
6383: PUSH
6384: DOUBLE
6385: LD_INT 1
6387: DEC
6388: ST_TO_ADDR
6389: LD_VAR 0 1
6393: PUSH
6394: FOR_TO
6395: IFFALSE 6481
// begin if IsInUnit ( EnginerList [ i ] ) then
6397: LD_VAR 0 1
6401: PUSH
6402: LD_VAR 0 4
6406: ARRAY
6407: PPUSH
6408: CALL_OW 310
6412: IFFALSE 6455
// begin ComExitBuilding ( EnginerList [ i ] ) ;
6414: LD_VAR 0 1
6418: PUSH
6419: LD_VAR 0 4
6423: ARRAY
6424: PPUSH
6425: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
6429: LD_VAR 0 1
6433: PUSH
6434: LD_VAR 0 4
6438: ARRAY
6439: PPUSH
6440: LD_VAR 0 3
6444: PUSH
6445: LD_INT 1
6447: ARRAY
6448: PPUSH
6449: CALL_OW 190
// end else
6453: GO 6479
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
6455: LD_VAR 0 1
6459: PUSH
6460: LD_VAR 0 4
6464: ARRAY
6465: PPUSH
6466: LD_VAR 0 3
6470: PUSH
6471: LD_INT 1
6473: ARRAY
6474: PPUSH
6475: CALL_OW 190
// end ;
6479: GO 6394
6481: POP
6482: POP
// wait ( 0 0$01 ) ;
6483: LD_INT 35
6485: PPUSH
6486: CALL_OW 67
// until FilterUnitsInArea ( FIX , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_lives , 1000 ] ] ] ) end else
6490: LD_INT 14
6492: PPUSH
6493: LD_INT 22
6495: PUSH
6496: LD_INT 3
6498: PUSH
6499: EMPTY
6500: LIST
6501: LIST
6502: PUSH
6503: LD_INT 21
6505: PUSH
6506: LD_INT 3
6508: PUSH
6509: EMPTY
6510: LIST
6511: LIST
6512: PUSH
6513: LD_INT 24
6515: PUSH
6516: LD_INT 1000
6518: PUSH
6519: EMPTY
6520: LIST
6521: LIST
6522: PUSH
6523: EMPTY
6524: LIST
6525: LIST
6526: LIST
6527: PUSH
6528: EMPTY
6529: LIST
6530: PPUSH
6531: CALL_OW 70
6535: IFFALSE 6379
6537: GO 6626
// if FilterUnitsInArea ( FIX , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_lives , 1000 ] ] ] ) then
6539: LD_INT 14
6541: PPUSH
6542: LD_INT 22
6544: PUSH
6545: LD_INT 3
6547: PUSH
6548: EMPTY
6549: LIST
6550: LIST
6551: PUSH
6552: LD_INT 21
6554: PUSH
6555: LD_INT 3
6557: PUSH
6558: EMPTY
6559: LIST
6560: LIST
6561: PUSH
6562: LD_INT 24
6564: PUSH
6565: LD_INT 1000
6567: PUSH
6568: EMPTY
6569: LIST
6570: LIST
6571: PUSH
6572: EMPTY
6573: LIST
6574: LIST
6575: LIST
6576: PUSH
6577: EMPTY
6578: LIST
6579: PPUSH
6580: CALL_OW 70
6584: IFFALSE 6626
// begin for i = 1 to EnginerListOutside do
6586: LD_ADDR_VAR 0 4
6590: PUSH
6591: DOUBLE
6592: LD_INT 1
6594: DEC
6595: ST_TO_ADDR
6596: LD_VAR 0 2
6600: PUSH
6601: FOR_TO
6602: IFFALSE 6624
// begin ComEnterUnit ( EnginerListOutside [ i ] , depot1 ) ;
6604: LD_VAR 0 2
6608: PUSH
6609: LD_VAR 0 4
6613: ARRAY
6614: PPUSH
6615: LD_INT 2
6617: PPUSH
6618: CALL_OW 120
// end ;
6622: GO 6601
6624: POP
6625: POP
// end ; end ;
6626: PPOPN 4
6628: END
